CRTL+Backspace删除(终止)字



这似乎是一个简单的在线答案,但令人惊讶的是,我还没能找到一个在我的系统中有效的解决方案。

我有一个装有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

最新更新