在Mac OS X上的zsh中绑定Fn-Delete


22

在zsh中,每当我按Fn + Delete(正向删除)时,都会插入一个代字号(〜)。这表明zsh没有键绑定。

如何绑定它并使它正常工作(在光标前面删除)?

Answers:


20

首先弄清楚它产生什么顺序。

echo "CtrlVFnDelete" | od -c

然后使用正常的zsh绑定机制绑定该序列。


1
〜> echo“〜” | od -c 0000000〜\ n 0000002〜>现在如何处理此信息?
Thomas R

10
@rixth:它实际上不是仅输出波浪号。您不能使用echo "~",您必须按照Ignacio给您的指示进行操作。在我的系统上,它是^[[3~(或作为od输出:)033 [ 3 ~。因此,命令将bindkey "^[[3~" delete-char在您的计算机中执行~/.zshrc
暂停,直到另行通知。

2
为了澄清上述内容,它ctrl-v是一个特殊的转义序列,意思是“将我按下的下一个字符作为原义的未转义字符插入,而不是照常执行。” 这意味着它不会转换为~,而是保留为转义序列。
NHDaly

我不明白如何使用上面的输出来导出bindkey。我的输出是0000000 C t r l V F n D e l e t e \n 0000016
奥利弗·约瑟夫·阿什

4

对我来说,上述方法并不能解决问题,因此我在我的计算机上添加了以下按键绑定~/.zshrc

bindkey "\e[3~" delete-char

仅供参考:我在Mac(High Sierra)上。


以及如何知道我想绑定的任何其他键的代码,例如Fn + F1?这样我可以在我的中设置相应的代码~/.zshrc
alexventuraio

1
您可以键入cat,然后键入密钥。例如Fn+F1给我^[OP
LordTribual

1

bindkey 'CtrlvFnDelete' delete-char

这将绑定Fn+ Delete以向前删除单个字符。如果以上内容不清楚,则需要在引号之间输入Ctrl+ vFn+ DeleteCtrl+ v允许您键入后面紧随其后的任何键的原义转义转义序列。

您可以将此行放入~/.zshrc文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.