删除(转发)字符 iTerm2 OSX

Delete (forward) character iTerm2 OSX

我在 OSX 上使用 iTerm2,我正在使用带有 Del 的外部键盘(不要与 Backspace). Del 键在 OSX 中工作正常,但在终端和 iTerm 中,它插入“~”而不是向前删除一个字符。这在终端中很容易修复,但在 iTerm 中,没有键绑定或转义序列允许我删除光标右侧的字符(等效的 Unix 命令是 Ctrl D)。有什么方法可以在 iTerm 中模拟删除向前移动一个字符吗?

您可以在全局首选项中添加 iTerm 键盘映射或基于配置文件的键盘映射,用于发送 Ctrl-D (0x04) 的键

即:我在这里将 Ctrl-Delete 映射到 Erase (Ctrl-D/0x04),就像扩展键盘的 Del 键:

如果您使用的是 zsh,请尝试将这些行添加到您的 ~/.zshrc 文件中,然后关闭并重新打开终端:

bindkey    "^[[3~"          delete-char
bindkey    "^[3;5~"         delete-char

这些应该可以在任何键盘上启用删除键,无需手动将键盘映射到十六进制命令 0x04,如果输入为空,它会关闭会话。


这是为什么?因为默认情况下 zsh 似乎不使用键绑定读取 /etc/inputrc。

正如 Gajus 所说,如果没有输入,使用 Ctrl-D 向前删除一个退格键也会关闭终端选项卡,这非常令人沮丧。

我正在使用 zsh,但将 ricpacca 建议的行添加到 .zshrc 对我不起作用。

我所做的是映射 Ctrl-Delete 以发送十六进制代码“0x06 0x08”。
0x06 转换为 "move one character forward",而 0x08 只是一个普通的退格键。

我想我会与其他在互联网上搜索无果的沮丧的 iTerm2 用户分享我的解决方案。