iTerm2:删除行?

我试图将Cmd + Delete(backspace)映射到iTerm2的行首(如浏览器和文本编辑器),我无法find工作的转义代码。 根据我在这里阅读的内容,我尝试了1K( ^[1K )…它只是打印一个“K”。

编辑:我发现Ctrl + U。 现在来找出如何映射它。 也许hex代码21(U是第21个字母),所以0x15?

我知道了。 我不知道为什么在iTerm2中的hex代码映射产生相关的Ctrl +键映射,但他们这样做。 不知道0x00是什么意思,因为它没有像预期的那样分配给A. (尽pipe我确实相信Unix有自己的处理空字节的约定 – 例如, xargs接受一个空字节分隔格式,例如,如果我们可以用iTerm2将它绑定到一个热键,这将是整洁的)

我可以发现Ctrl + U几乎可以完成我想要的任务(删除整行,而不是只删除光标前面的内容,但是无论如何… Ctrl + Y作为奖励可以将它全部带回)。 然后我好奇地看到,我的hex代码0x10x5映射到^A^E ,我的Cmd +左和Cmd +右…所以0x15^U

在大多数shell中将hex代码0x15映射到 + ←Delete将删除整行(内容在光标的左侧和右侧)。 虽然有时不那么兼容,但我发现这个映射:

+ ←删除发送hex代码:

0x18 0x7f

执行期望的function。 如果您正在运行ZSH,您可能还需要将其添加到.zshrc文件中:

 $ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc 

因为默认情况下,ZSH不会将backward-kill-line映射到任何东西。

我写了一个全面的指南, 在这里添加大部分OSX的标准键绑定到您的terminal

我希望这可以帮助你http://felipecsl.com/blog/2012/06/05/protip-delete-words-on-iterm2-mac-osx/

地图⌥< – 删除以发送hex代码:0x1B 0x08

我已经testing过了,这是正确的。


18.09.2013更新

这删除了一个字,不是一行。

正如所指出的, ^U删除该行。 您可以使用Better Touch Tool轻松重新映射该命令。

它还具有自动化,鼠标,键盘和键盘映射的很酷的function。 还包括智能边框的窗口function。