我正在使用zsh
,我希望单词导航/删除能够完全发挥其在Vim中的作用,以适应我的肌肉记忆。
在Vim中,给定文本foo ./bar baz-bob
,从第一个角色开始的每个前向导航都会这样播放:
foo ./bar baz-bob
^ ^ ^ ^ ^^
在默认的zsh中,它会像这样播放:
foo ./bar baz-bob
^ ^ ^ ^
我使用WORDCHARS=${WORDCHARS//[\/-]}
成功取得了一些成功。据我了解,这可以从/
删除-
和WORDCHARS
字符。 WORDCHARS
是一串字符,也是单词的一部分。
foo ./bar baz-bob
^ ^ ^ ^ ^ ^
注意:我知道zsh的vi模式,但我更喜欢配置zsh的默认模式以便这样做。
答案 0 :(得分:0)
您检查了this吗?您可以在没有短划线的情况下重新导出WORDCHARS环境变量。
答案 1 :(得分:0)
对于最新的MacOS Sierra + iTerm2 + oh-my-zsh,如果我在输入cd /usr/local/share/gobject-introspection-1.0
后连续按 CTRL W ,则故事如下:
cd /usr/local/share/gobject-introspection-1.0
cd /usr/local/share/gobject-introspection-1.
cd /usr/local/share/gobject-introspection-
cd /usr/local/share/gobject-
cd /usr/local/share/
cd /usr/local/
我没有任何密钥绑定或其他配置文件。我不喜欢太多文件。这是我需要的.zshrc
部分:
...
bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word
...
如果上述内容不起作用或您不喜欢,则可以在~/.zshrc
上尝试:
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
或:
autoload -U select-word-style
select-word-style bash
或(I found the below a gist which referred here):
tcsh-backward-delete-word () {
local WORDCHARS="${WORDCHARS:s#/#}"
zle backward-delete-word
}
bindkey '^W' tcsh-backward-delete-word