删除(转发)字符iTerm2 OSX

时间:2015-10-21 22:31:49

标签: macos keyboard keyboard-shortcuts iterm2

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

3 个答案:

答案 0 :(得分:9)

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

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

enter image description here

答案 1 :(得分:8)

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

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

这些应该在任何键盘上启用你的删除键,而不需要手动键盘映射到十六进制命令0x04,如果输入为空,则会出现关闭会话的问题。

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

答案 2 :(得分:5)

就像Gajus所说的那样,如果没有输入可能非常令人沮丧,使用Ctrl-D删除一个退格前进也会关闭终端标签。

我正在使用zsh,但添加ricpacca建议的.zshrc行并不适合我。

我所做的是映射Ctrl-Delete以发送十六进制代码" 0x06 0x08"。
0x06转换为"向前移动一个字符",0x08只是一个正常的退格。

我想与其他任何沮丧的iTerm2用户分享我的解决方案,这些用户在网上搜索无济于事。