我正在尝试将(退格)映射到iTerm2⌘+Delete中的行首(就像它在浏览器和文本编辑器中一样),但我无法找到它的工作转义码。我根据我在 Wikipedia中阅读的内容尝试了 1K( ) 。它只是打印一个“K”。^[1K
编辑:我发现Ctrl+U. 现在来了解如何映射它。也许十六进制代码 21(U 是第 21 个字母),所以 0x15?
我正在尝试将(退格)映射到iTerm2⌘+Delete中的行首(就像它在浏览器和文本编辑器中一样),但我无法找到它的工作转义码。我根据我在 Wikipedia中阅读的内容尝试了 1K( ) 。它只是打印一个“K”。^[1K
编辑:我发现Ctrl+U. 现在来了解如何映射它。也许十六进制代码 21(U 是第 21 个字母),所以 0x15?
我得到了它。我不知道为什么 iTerm2 中的十六进制代码映射会产生相关的 Ctrl+键映射,但确实如此。也不知道 0x00 是什么意思,因为它没有像预期的那样分配给 A。(尽管我确实相信 Unix 有自己的处理空字节的约定——例如,我们xargs
接受了空字节分隔格式find
——如果我们可以将它绑定到 iTerm2 的热键,那就太好了)
我能够发现 Ctrl+U 几乎可以完成我想要的任务(它会删除整行而不是只删除光标之前的内容,但是无论如何...... Ctrl+Y 作为奖励可以将其全部恢复)。然后我好奇地看到我有十六进制代码0x1
并分别0x5
映射到^A
和^E
,对于我的 Cmd+Left 和 Cmd+Right... 所以0x15
是^U
!
将十六进制代码映射0x15
到⌘</kbd> + ←Delete in most shells deletes the entire line (content to the left and right of the cursor). While sometimes not as compatible, I find that mapping:
⌘</kbd>+←Delete to Send Hex Codes:
0x18 0x7f
执行所需的功能。如果您正在运行 ZSH,您可能还需要将其添加到您的 .zshrc 文件中:
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc
默认情况下,ZSH 不会映射backward-kill-line
到任何东西。
此外,您还可以通过映射删除光标右侧的所有内容:
⌘</kbd>+fn+←Delete or ⌘</kbd>+Delete→</kbd> to Send Hex Codes:
0x0b
我在这里写了一份综合指南,将 OSX 的大部分标准键绑定添加到您的终端
在 OSX 中,⌥+⌫ 和⌘+⌫ 分别是删除一个单词和删除一行的快捷键。⌘+ ← 和 ⌘+ → 用于转到行的开头和结尾。默认情况下,iTerm2不是这样配置的,网上有很多误导性的指南。以下是我发现在我的机器上工作的内容。
十六进制代码...
为了清楚起见,这是一个屏幕截图:
正如所指出的那样^U
删除该行。您可以使用Better Touch Tool轻松地重新映射命令。
它还具有很酷的自动化、鼠标、键盘和键盘映射功能。还包括智能边框的窗口功能。
On iTerm2 you can set the exact same shortcuts of your OS. In this case, as the default shortcut to delete a line on Mac OS is ⌘+Delete
(backspace), you can do so.
To set the default keybindings of iTerm you have to:
⌘+,
)