我试图⌘+Delete在iTerm2中映射(退格)以删除到该行的开头(就像它在浏览器和文本编辑器中一样),但我找不到适合它的转义代码。我^[1K
根据在Wikipedia上阅读的内容尝试了1K()。它只是打印一个“ K”。
编辑:我发现了Ctrl+U。现在了解如何映射它。也许十六进制代码21(U是第21个字母),所以是0x15?
我试图⌘+Delete在iTerm2中映射(退格)以删除到该行的开头(就像它在浏览器和文本编辑器中一样),但我找不到适合它的转义代码。我^[1K
根据在Wikipedia上阅读的内容尝试了1K()。它只是打印一个“ K”。
编辑:我发现了Ctrl+U。现在了解如何映射它。也许十六进制代码21(U是第21个字母),所以是0x15?
ALT+Backspace
->发送十六进制0x17,ALT+RightArrow
->发送Exc Seq f,ALT+LeftArrow
->发送Exc Seq b
Answers:
我知道了。我不知道为什么iTerm2中的十六进制代码映射会产生关联的Ctrl + key映射,但是它们确实会这样做。也不知道0x00是什么意思,因为未按预期将其分配给A。(尽管我确实相信Unix在处理空字节方面有其自己的约定-例如,我们xargs
接受例如一个空字节定界格式find
,例如,如果我们可以使用iTerm2将其绑定到热键,那就太好了)
我能够发现Ctrl + U几乎完成了我想要的任务(它删除了整行,而不是只删除光标之前的内容,但是无论如何... Ctrl + Y作为奖励可以使所有内容恢复原状)。然后我好奇地发现我的Cmd + Left和Cmd + Right有十六进制代码0x1
并分别0x5
映射到^A
和^E
……0x15
对于^U
!
u
只是字母表中的第21个字母!因此,我认为这种表达是正确的。
x
python -c "import string; print(hex(string.ascii_lowercase.find('x') + 1))"
~/.bashrc
~/.bash_profile
alias hexletter='python -c "import string,sys; print(hex(string.ascii_lowercase.find(sys.argv[-1]) + 1))"'
在大多数shell中,将十六进制代码映射0x15
为⌘+←Delete会删除整行(光标左侧和右侧的内容)。尽管有时不兼容,但我发现该映射:
⌘+←Delete发送十六进制代码:
0x18 0x7f
执行所需的功能。如果您正在运行ZSH,则可能还需要将其添加到.zshrc文件中:
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc
因为默认情况下ZSH不会映射backward-kill-line
到任何内容。
此外,您还可以通过映射删除光标右侧的所有内容:
⌘+ fn+←Delete或⌘+Delete→发送十六进制代码:
0x0b
我写了一个全面的指南,在这里向您的终端添加添加大多数OSX标准键盘绑定的功能
^X
,然后退格键将删除它。我确实使用iTerm中的按键绑定(将序列一起发送而没有人工延迟)进行了尝试,并且看到了相同的行为。这向我表明,bash也需要对其进行绑定。
backward-kill-line
是使用与⌘ + ←Delete
。额外的配置有点麻烦,尽管一点也不差。
在OSX中,⌥+⌫和⌘+⌫分别是删除单词和删除行的快捷方式。⌘+←和⌘+→用于转到行的开头和结尾。默认情况下,iTerm2并非以这种方式配置,并且在线上存在许多误导性指南。以下是我发现可以在机器上工作的内容。
十六进制代码表示...
为了清晰起见,以下是屏幕截图:
^H
对于许多终端,Ctrl + H应该实际上意味着“退格”。Alt- / meta / escape-prefix将其转换为“ kill-word”似乎很明智,尽管目前尚不清楚它的支持范围。
如所指出的^U
删除行。您可以使用Better Touch Tool轻松地重新映射命令。
它还具有用于自动化,鼠标,键盘和键盘映射的出色功能。还包括用于智能边框的窗口功能。
CTRL+A CTRL+K
在此期间尝试。或CTRL+C