Mar*_*zek 9 mac terminal backspace fn-key
我希望Mac 上的删除键(好吧,Fn+Backspace组合)在终端中的行为与正常情况相同。也就是说,要执行 forward-delete。现在它输出波浪号 - 至少这是我能看到的。
在Mac OS X 上的 zsh 中的 Binding Fn-Delete 中,我看到了一些hackery并尝试了它:
(在下面的引号内按下 [Fn]+[<---])
$ echo "~" | od -c
0000000 ~ \n
0000002
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它表现?
Chr*_*sen 18
您链接的问题的答案显示了如何查找当您按下:时终端发送的控制序列。
这对于防止(可能的)初始 ESC 字符的特殊解释至关重要。FnBackspaceecho 'ControlV FnBackspace' | od -c
ControlV
终端大概发送四字节序列ESC [ 3 ~。
您链接的问题是询问zsh。对答案的评论给出了在zsh 中绑定序列的命令,即:
bindkey "^[[3~" delete-char
Run Code Online (Sandbox Code Playgroud)
(通常在~/.zhsrc)。
但是,bash是 Mac OS X 上的默认 shell,因此如果您使用bash : ,则绑定键的命令(以及可用于绑定的函数)将有所不同bind '"\e[3~": delete-char'。您可能希望将其放在bash启动文件1 中。
如果您发现您正在使用bash,但您想改用zsh,那么有两种方法可以更改您的有效 shell:
chsh -s /bin/zsh更改默认的shell。/bin/zsh -l1通常~/.bashrc,但您也可以将相关行 ( "\e[3~": delete-char) 放入~/.inputrc。如果你把它放在你的.bashrc,你会想确保你也有一行像source ~/.bashrcin ~/.bash_profile,或者~/.bash_login(如果你没有,那么创建前者;如果你已经有一个,那么使用你拥有的一个;如果你两者都有,那么你应该解决这个问题,因为可能只有前者被使用)。