我想要删除键(好吧,Fn+Backspace组合)在我的 Mac 上的行为与终端中的行为相同。也就是说,执行前向删除。现在它输出波浪符号 - 至少这是我能看到的。
在在 Mac OS X 上的 zsh 中绑定 Fn-Delete我看到了一些黑客行为并尝试了:
(在下面的引号内按下 [Fn]+[<---])
$ echo "~" | od -c
0000000 ~ \n
0000002
我怎样才能让它表现良好?
答案1
您链接的问题的答案显示了如何找到控制序列终端当您按下FnBackspace:时发送echo '
ControlV FnBackspace' | od -c
。
这ControlV对于防止对(可能的)初始 ESC 字符进行特殊解释至关重要。
终端可能发送四个字节序列ESC [ 3 ~
。
你链接的问题是关于嘚答案的评论给出了绑定序列的命令嘚, IE:
bindkey "^[[3~" delete-char
(通常在~/.zhsrc
)。
然而,狂欢是 Mac OS X 上的默认 shell,因此如果您使用狂欢: bind '"\e[3~": delete-char'
。你可能想把它放在狂欢启动文件1 .
如果你发现自己正在使用狂欢,但你想使用嘚相反,有两种方法可以更改你的有效 shell:
- 用于
chsh -s /bin/zsh
更改默认 shell。
这将更改终端以及其他登录会话(例如通过 SSH 登录)启动的 shell 一起启动。 - 配置刚刚终端使用不同的 shell终端的喜好。
终端>优先…,设置工具栏按钮,然后壳标签,
更改运行命令至(例如)/bin/zsh -l
。
1通常为~/.bashrc
,但您也可以改为放入相关行 ( "\e[3~": delete-char
) ~/.inputrc
。如果您将其放入.bashrc
,则需要确保您也有类似 或 的行source ~/.bashrc
(~/.bash_profile
如果~/.bash_login
两者都没有,则创建前者;如果您已经拥有其中之一,则使用您拥有的那一个;如果两者都有,则应修复该问题,因为可能只使用了前者)。