コマンドラインの単語区切りを設定する

zshにて、例えば

$ ls /Users/sugyan/ 

と打ったところで末尾から"/Users/"の後ろのところにカーソルを移動させようと思って"backward-word"しようとしても、引数の先頭の"/"まで戻ってしまう。また、

$ echo ほげ ふが ぴよ

と打ったところで末尾から"backward-word"で戻ると、引数の区切りで移動するかと思いきや行頭まで戻ってしまう。

1番目の方はbashでは起こらず"/"を区切りに移動してくれるらしい。zshの設定でそれと同じようにするには

autoload -Uz select-word-style
select-word-style bash

とすることで実現できるらしい。
ただしこれでは2番目の問題は解決しない。

autoload -Uz select-word-style
select-word-style default
zstyle ':zle:*' word-chars " _-./;@"
zstyle ':zle:*' word-style unspecified

というようにしておくと、"word-chars"で指定したところでちゃんと区切ってくれて、日本語が入っていてもスペース区切りで単語移動も可能になる。


ということも丁寧に解説してくれてるzshの本 (エッセンシャルソフトウェアガイドブック)++