[mew-dist 25054] Re: 新マーク (第2版)

Keiichi SHIMA / 島慶一 keiichi at example.com
2004年 6月 10日 (木) 22:54:26 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [mew-dist 25049] Re: 新マーク (第2版)

> > そうですか? 2 つのカラムは、お互いに意味的な関係がないので、それぞれの
> > カラムの操作が定義できればよいですよね。
> 
> いいえ。カーソルの動作なども定義しないといけません。カーソルの移動には、
> 両方のカラムが関係します。

うーん。たしかに。

では、例えば、次の未読メッセージに移動する、とかいう新しい操作を別のキー
に割り当てたりしたらどうでしょう?
(ひょっとして、もう 1 カラムに心が決まってたりするなら、ここで議論やめ
て次の機会を待ちますが(笑))

口でいうだけじゃアレですので、FSM 書いてみました。割と厳密に定義できる
気がします。なお、現在定義されていないアクションへのキー割り当ては適当
です。


----------------------------------------------------------------------
2 カラムの場合の状態遷移

操作マーク:
	' '	操作なし
	*	ピック
	@	栞
	o(O)	リファイル
	D(X)	削除

状態マーク:
	' '	既読
	$	注目かつ既読 (注:注目かつ未読は存在しないと定義)
	U	未読
	T	不完全

アクション:
	SPC	メッセージの表示
	v	メッセージバッファ表示のトグル
	o(O)	リファイルマーク付加
	d(M-d)	削除マーク付加
	I	不完全メッセージの読み込み
	$	注目マーク付加
	L	既読/未読のトグル
	n	次の操作マークのない(*を除く)メッセージへ移動
	p	前の操作マークのない(*を除く)メッセージへ移動
	N	次のピックメッセージへ移動
	P	前のピックメッセージへ移動
	C-u n	次の未読メッセージへ移動
	C-u p	前の未読メッセージへ移動
	(Mes)	メッセージバッファにメッセージが表示された
	*	ピックマークの付加
	@	栞マークの付加


状態遷移:

"  "
	SPC	-> "  "
	v	-> "  "
	o(O)	-> " o"
	d(M-d)	-> " D"
	I	-> "  "
	$	-> "$ "
	L	-> "U " 
	n	-> "  "
	p	-> "  "
	N	-> "  "
	P	-> "  "
	C-u n	-> "  "
	C-u p	-> "  "
	(Mes)	-> "  "
	*	-> " *"
	@	-> " @"

" *"
	SPC	-> " *"
	v	-> " *"
	o(O)	-> " o"
	d(M-d)	-> " D"
	I	-> " *"
	$	-> "$*"
	L	-> "U*" 
	n	-> " *"
	p	-> " *"
	N	-> " *"
	P	-> " *"
	C-u n	-> " *"
	C-u p	-> " *"
	(Mes)	-> " *"
	*	-> " *"
	@	-> " @"

" @"
	SPC	-> " @"
	v	-> " @"
	o(O)	-> " o"
	d(M-d)	-> " D"
	I	-> " @"
	$	-> "$@"
	L	-> "U@" 
	n	-> " @"
	p	-> " @"
	N	-> " @"
	P	-> " @"
	C-u n	-> " @"
	C-u p	-> " @"
	(Mes)	-> " @"
	*	-> " *"
	@	-> " @"

" o"
	SPC	-> " o"
	v	-> " o"
	o(O)	-> " o"
	d(M-d)	-> " o" (ask?)
	I	-> " o"
	$	-> "$o"
	L	-> "Uo" 
	n	-> " o"
	p	-> " o"
	N	-> " o"
	P	-> " @"
	C-u n	-> " @"
	C-u p	-> " @"
	(Mes)	-> " @"
	*	-> " o"
	@	-> " o"

" D"
	SPC	-> " D"
	v	-> " D"
	o(O)	-> " o"
	d(M-d)	-> " o"
	I	-> " D"
	$	-> "$D"
	L	-> "UD" 
	n	-> " D"
	p	-> " D"
	N	-> " D"
	P	-> " D"
	C-u n	-> " D"
	C-u p	-> " D"
	(Mes)	-> " D"
	*	-> " *"
	@	-> " @"

"$ "
	SPC	-> "$ "
	v	-> "$ "
	o(O)	-> "$o"
	d(M-d)	-> "$D"
	I	-> "$ "
	$	-> "  "
	L	-> "U " 
	n	-> "$ "
	p	-> "$ "
	N	-> "$ "
	P	-> "$ "
	C-u n	-> "$ "
	C-u p	-> "$ "
	(Mes)	-> "$ "
	*	-> "$ "
	@	-> "$ "

"$*"
	SPC	-> "$*"
	v	-> "$*"
	o(O)	-> "$o"
	d(M-d)	-> "$D"
	I	-> "$*"
	$	-> " *"
	L	-> "U*" 
	n	-> "$*"
	p	-> "$*"
	N	-> "$*"
	P	-> "$*"
	C-u n	-> "$*"
	C-u p	-> "$*"
	(Mes)	-> "$*"
	*	-> "$*"
	@	-> "$*"

"$@"
	SPC	-> "$@"
	v	-> "$@"
	o(O)	-> "$o"
	d(M-d)	-> "$D"
	I	-> "$@"
	$	-> " @"
	L	-> "U@" 
	n	-> "$@"
	p	-> "$@"
	N	-> "$@"
	P	-> "$@"
	C-u n	-> "$@"
	C-u p	-> "$@"
	(Mes)	-> "$@"
	*	-> "$@"
	@	-> "$@"

"$o"
	SPC	-> "$o"
	v	-> "$o"
	o(O)	-> "$o"
	d(M-d)	-> "$o" (ask?)
	I	-> "$o"
	$	-> " o"
	L	-> "Uo" 
	n	-> "$o"
	p	-> "$o"
	N	-> "$o"
	P	-> "$o"
	C-u n	-> "$o"
	C-u p	-> "$o"
	(Mes)	-> "$o"
	*	-> "$o"
	@	-> "$o"

"$D"
	SPC	-> "$D"
	v	-> "$D"
	o(O)	-> "$o"
	d(M-d)	-> "$D"
	I	-> "$D"
	$	-> " D"
	L	-> "UD" 
	n	-> "$D"
	p	-> "$D"
	N	-> "$D"
	P	-> "$D"
	C-u n	-> "$D"
	C-u p	-> "$D"
	(Mes)	-> "$D"
	*	-> "$*"
	@	-> "$@"

"U "
	SPC	-> "  "
	v	-> "  "
	o(O)	-> "Uo"
	d(M-d)	-> "UD"
	I	-> "U "
	$	-> "$ "
	L	-> "  " 
	n	-> "U "
	p	-> "U "
	N	-> "U "
	P	-> "U "
	C-u n	-> "U "
	C-u p	-> "U "
	(Mes)	-> "  "
	*	-> "U*"
	@	-> "U@"

"U*"
	SPC	-> " *"
	v	-> " *"
	o(O)	-> "Uo"
	d(M-d)	-> "UD"
	I	-> "U*"
	$	-> "$*"
	L	-> " *" 
	n	-> "U*"
	p	-> "U*"
	N	-> "U*"
	P	-> "U*"
	C-u n	-> "U*"
	C-u p	-> "U*"
	(Mes)	-> " *"
	*	-> "U*"
	@	-> "U@"

"U@"
	SPC	-> " @"
	v	-> " @"
	o(O)	-> "Uo"
	d(M-d)	-> "UD"
	I	-> "U@"
	$	-> "$@"
	L	-> " @" 
	n	-> "U@"
	p	-> "U@"
	N	-> "U@"
	P	-> "U@"
	C-u n	-> "U@"
	C-u p	-> "U@"
	(Mes)	-> " @"
	*	-> "U*"
	@	-> "U@"

"Uo"
	SPC	-> " o"
	v	-> " o"
	o(O)	-> "Uo"
	d(M-d)	-> "Uo" (ask?)
	I	-> "Uo"
	$	-> "$o"
	L	-> " o" 
	n	-> "Uo"
	p	-> "Uo"
	N	-> "Uo"
	P	-> "Uo"
	C-u n	-> "Uo"
	C-u p	-> "Uo"
	(Mes)	-> " o"
	*	-> "Uo"
	@	-> "Uo"

"UD"
	SPC	-> " D"
	v	-> " D"
	o(O)	-> "Uo"
	d(M-d)	-> "UD"
	I	-> "UD"
	$	-> "$D"
	L	-> " D" 
	n	-> "UD"
	p	-> "UD"
	N	-> "UD"
	P	-> "UD"
	C-u n	-> "UD"
	C-u p	-> "UD"
	(Mes)	-> " D"
	*	-> "U*"
	@	-> "U@"

"T "
	SPC	-> "T "
	v	-> "T "
	o(O)	-> "To"
	d(M-d)	-> "TD"
	I	-> "  "
	$	-> "T "
	L	-> "T " 
	n	-> "T "
	p	-> "T "
	N	-> "T "
	P	-> "T "
	C-u n	-> "T "
	C-u p	-> "T "
	(Mes)	-> "T "
	*	-> "T*"
	@	-> "T@"

"T*"
	SPC	-> "T*"
	v	-> "T*"
	o(O)	-> "To"
	d(M-d)	-> "TD"
	I	-> " *"
	$	-> "T*"
	L	-> "T*" 
	n	-> "T*"
	p	-> "T*"
	N	-> "T*"
	P	-> "T*"
	C-u n	-> "T*"
	C-u p	-> "T*"
	(Mes)	-> "T*"
	*	-> "T*"
	@	-> "T@"

"T@"
	SPC	-> "T@"
	v	-> "T@"
	o(O)	-> "To"
	d(M-d)	-> "TD"
	I	-> " @"
	$	-> "T@"
	L	-> "T@" 
	n	-> "T@"
	p	-> "T@"
	N	-> "T@"
	P	-> "T@"
	C-u n	-> "T@"
	C-u p	-> "T@"
	(Mes)	-> "T@"
	*	-> "T@"
	@	-> "T@"

"To"
	SPC	-> "To"
	v	-> "To"
	o(O)	-> "To"
	d(M-d)	-> "To" (ask?)
	I	-> " o"
	$	-> "To"
	L	-> "To" 
	n	-> "To"
	p	-> "To"
	N	-> "To"
	P	-> "To"
	C-u n	-> "To"
	C-u p	-> "To"
	(Mes)	-> "To"
	*	-> "To"
	@	-> "To"

"TD"
	SPC	-> "TD"
	v	-> "TD"
	o(O)	-> "To"
	d(M-d)	-> "TD"
	I	-> " D"
	$	-> "TD"
	L	-> "TD" 
	n	-> "TD"
	p	-> "TD"
	N	-> "TD"
	P	-> "TD"
	C-u n	-> "TD"
	C-u p	-> "TD"
	(Mes)	-> "TD"
	*	-> "T*"
	@	-> "T@"



Mew-dist メーリングリストの案内