単語を削除したい Ctrl+Wzsh
のように。
vim /foo/bar^W
vim /foo/
そして、bash
の解決策を見つけましたが、bind
はzsh関数にありません。
設定方法 Ctrl+W として delete-Word
?
これは。zshrcからのスニペットです:
my-backward-delete-Word() {
local WORDCHARS=${WORDCHARS/\//}
zle backward-delete-Word
}
zle -N my-backward-delete-Word
bindkey '^W' my-backward-delete-Word
これが元のソースだったことを思い出します: http://www.zsh.org/mla/users/2001/msg00870.html
参考までに、このソリューション here の方がはるかにエレガントであることがわかりました。私は引用します:
別のオプションは、
WORDCHARS
(Wordの一部として扱われる英数字以外の文字)を_/
_を含まないものに設定することです。ドット、アンダースコアなどで区切るために_
^w
_を使用したい場合は、これを調整することもできます。_~/.zshrc
_には、_WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
_
@Patrykが以下のコメントで指摘したように、これは_ZSH >= 5.7
_では機能しません。これが私がテストしてzsh 5.8 (x86_64-Apple-darwin18.7.0)
で作業したアップデートです。
_autoload -U select-Word-style
select-Word-style bash
export WORDCHARS='.-'
_