我正在尝试将⌘+ Delete (退格)映射到 iTerm2 中的行的开头(就像在浏览器和文本编辑器中一样)我无法为它找到有效的转义码。我根据我读到的in Wikipedia尝试了1K(^[1K
)。它只打印一个“K”。
编辑:我找到了 Ctrl + U 。现在来了解如何映射它。也许十六进制代码21(U是第21个字母),所以0x15?
答案 0 :(得分:96)
我明白了。我不知道为什么iTerm2中的Hex代码映射会产生相关的Ctrl +键映射,但它们确实如此。不知道0x00的含义是什么,因为它没有像预期的那样分配给A。 (虽然我确实认为Unix有自己的处理空字节的约定 - 我们有例如xargs
接受来自find
的空字节分隔格式 - 如果我们可以绑定它就会很好与iTerm2的热键)
我能够发现Ctrl + U几乎完成了我想要的任务(它删除整行而不是仅删除光标之前的内容,但无论如何...... Ctrl + Y作为奖励可以将它全部带回来)。然后我好奇地看到我的十六进制代码0x1
和0x5
分别映射到^A
和^E
,因为我的Cmd + Left和Cmd + Right ...所以{{ 1}}适用于0x15
!
答案 1 :(得分:27)
将十六进制代码0x15
映射到⌘ + ←大多数shell中的删除删除整行(光标左侧和右侧的内容)。虽然有时不兼容,但我发现映射:
⌘ + ←删除发送十六进制代码:
0x18 0x7f
执行所需的功能。如果您正在运行ZSH,则可能还需要将其添加到.zshrc文件中:
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc
默认情况下,ZSH不会将backward-kill-line
映射到任何内容。
我写了一篇综合指南,将大部分OSX的标准键绑定添加到您的终端here
答案 2 :(得分:11)
我希望这可以帮助你http://felipecsl.com/blog/2012/06/05/protip-delete-words-on-iterm2-mac-osx/
map⌥< - 删除发送十六进制代码:0x1B 0x08
我对它进行了测试,这是正确的。
18.09.2013更新
这删除一个单词,而不是一行。
答案 3 :(得分:10)
在OSX中,⌥+⌫和⌘+⌫分别是删除单词和删除行的快捷方式。 ⌘+←和⌘+→用于转到行的开头和结尾。默认情况下,iTerm2并非以这种方式配置,并且在线上存在许多误导性指南。以下是我发现可以在计算机上使用的内容。
...的十六进制代码
为清晰起见,以下是屏幕截图:
答案 4 :(得分:3)
如指出^U
删除该行。您可以使用Better Touch Tool轻松重新映射命令。
它还具有很酷的自动化,鼠标,键盘和键盘映射功能。还包括智能边框的窗口功能。
答案 5 :(得分:2)