我在Mac OS X上使用iTerm2,并使用一个带有Del(不要与Backspace混淆)的外部键盘。在OSX中,Del键运行正常,但在终端和iTerm中,它插入“~”而不是向前删除一个字符。在终端中,这很容易修复,但在iTerm中,没有任何键绑定或转义序列可以让我删除光标右侧的字符(相当于Unix命令CtrlD)。是否有任何方法可以模拟在iTerm中向前删除一个字符?
我在Mac OS X上使用iTerm2,并使用一个带有Del(不要与Backspace混淆)的外部键盘。在OSX中,Del键运行正常,但在终端和iTerm中,它插入“~”而不是向前删除一个字符。在终端中,这很容易修复,但在iTerm中,没有任何键绑定或转义序列可以让我删除光标右侧的字符(相当于Unix命令CtrlD)。是否有任何方法可以模拟在iTerm中向前删除一个字符?
像 Gajus 所说的那样,使用 Ctrl-D 可以向前删除一个退格符,但如果没有输入内容,它也会关闭终端标签页,这可能非常令人沮丧。
我正在使用 zsh,但是将 ricpacca 建议的行添加到 .zshrc 中对我没有起作用。
相反,我将 Ctrl-Delete 映射到发送十六进制代码“0x06 0x08”。
0x06 代表“向前移动一个字符”,0x08 则是普通的后退键。
想为其他在互联网上搜寻了却找不到解决方法的 iTerm2 用户分享我的解决方案。
如果您使用zsh,请尝试将以下行添加到您的~/.zshrc文件中,然后关闭并重新打开终端:
如果你正在使用 zsh , 尝试将这些行添加到你的 ~/.zshrc 文件中,然后关闭并重新打开终端:
bindkey "^[[3~" delete-char
bindkey "^[3;5~" delete-char
这些应该可以启用键盘上的删除键,无需手动映射到十六进制命令0x04
,因为手动映射存在一个问题,就是如果输入为空,则会关闭会话。
为什么?因为似乎zsh默认不读取/etc/inputrc中的键绑定。
[3~
并保存。这将显示为包含转义的值 ^[[3~
这不像十六进制代码那样跳来跳去,如果你在最后一行意外删除太多,你的终端也不会关闭。