这似乎是一个简单的在线答案,但令人惊讶的是,我还没能找到一个在我的系统中有效的解决方案。
我有一个装有ZSH/Oh My ZSH的Macbook pro,安装了几个插件。基本上,我想尝试和配置的是具有与Crtl+W相同的行为来使用Crtl+Backspace。如果我把bindkey '^?' backward-kill-word
放在我的.zshrc文件中,那么只按退格键会删除整个单词,这几乎是我想要的,但使用Crtl+退格键,而不仅仅是退格键。
这里有一个带有小助手C程序的解决方案。
#include <CoreGraphics/CoreGraphics.h>
int main() {
return CGEventSourceFlagsState(1);
}
用gcc modkeys.c -framework CoreGraphics
编译a.out
需要移动到/usr/bin/local/modkeys
现在在您的.zshrc
中
function my-backspace () {
/usr/local/bin/modkeys
local KEYS_MODIFIERS=$?
# backspace + left control
if [ $KEYS_MODIFIERS -eq 1 ]; then
zle backward-kill-word
else
zle backward-delete-char
fi
}
zle -N my-backspace
bindkey '^?' my-backspace
这个解决方案的缺点是它只能在本地工作,任何远程终端ssh会话都不能访问/usr/bin/local/modkeys
。