Mac 上的终端 - 删除键行为

Mac 上的终端 - 删除键行为

我想要删除键(好吧,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两者都没有,则创建前者;如果您已经拥有其中之一,则使用您拥有的那一个;如果两者都有,则应修复该问题,因为可能只使用了前者)。

相关内容