iTerm 2:如何设置键盘快捷键跳转到开始/结束行?
我可以看到Ctrl +左/右跳到行的开始/结尾。 如何将其更改为Cmd +左/右箭头?
为了让Alt +左/右箭头正确工作,请跳过这篇文章。
在iTerm2中添加以下配置文件快捷键
FOR ACTION SEND
⌘← "SEND HEX CODE" 0x01
⌘→ "SEND HEX CODE" 0x05
⌥← "SEND ESC SEQ" b
⌥→ "SEND ESC SEQ" f
这是需要它的人的视觉效果
要在iTerm2中的单词和行的开始/结尾之间跳转,请执行以下步骤:
将光标向左移动一个单词
0x1b 0x62
向右移动光标一个字
0x1b 0x66
将光标移动到行首
0x01
将光标移动到行尾
0x05
删除单词
0x1b 0x08
删除线
0x15
解开
0x1f
不要忘记删除以前的绑定 :
我已经看到了很多很好的答案,但是它应该尽可能地提供最接近本地OSX的功能,而不仅仅是您的shell。 我证实了这一点在ZSH,Bash,node,python -i,iex和irb / pry会话(对于readline使用rb-readline gem,但应该适用于所有)中起作用。
打开iTerm首选项⌘+,然后导航到Profiles
选项卡(可使用Keys
选项卡,但向配置文件添加Keys
绑定可让您保存配置文件并将其同步到多台计算机)并keys
子选项卡并输入以下内容:
删除光标左侧的所有字符
⌘+←删除发送十六进制代码:
0x15
更兼容,但功能有时会删除整行,而不是光标左侧的字符。 我个人使用这个,然后覆盖我的zsh bindkey让^U
只删除光标左边的东西(见下文)。
要么
0x18 0x7f
不兼容,不能在节点中工作,默认情况下不能在zsh中工作,请参阅下文修复zsh(bash / irb / pry应该没问题),在其工作时执行所需的功能。
删除光标右侧的所有字符
⌘+ fn +←删除或⌘+删除→发送十六进制代码: 0x0b
删除光标左边的一个单词
⌥+←删除发送十六进制代码:
0x1b 0x08
Elixir的IEX中断,似乎在其他地方都能正常工作
要么
0x17
无处不在,但不会停留在IRB中正常的单词分隔,而是会删除,直到它看到一个文字空间。
删除光标右边的一个词
⌥+ fn←删除或⌥+删除→发送十六进制代码: 0x01b 0x64
将光标移动到行的前面
⌘+←发送十六进制代码: 0x01
将光标移动到行尾
⌘+→发送十六进制代码: 0x05
将光标向左移动一个单词
⌥+←发送十六进制代码: 0x1b 0x62
向右移动光标一个字
⌥+→发送十六进制代码: 0x1b 0x66
解开
⌘+ z发送十六进制代码: 0x1f
重做通常不会绑定在bash,zsh或readline中,所以我们可以将它设置为一个未使用的十六进制代码,然后我们可以在zsh中修复它
⇧+⌘+ Z或⌘+ y发送十六进制代码: 0x18 0x1f
现在如何解决任何不起作用的问题
对于zsh,您可以运行以下命令为尚未启用的⌘+←Delete和⇧+⌘+ Z /⌘+ y设置绑定:
# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc
# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^Xx7f" backward-kill-line' >> ~/.zshrc
# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc
# reload your .zshrc for changes to take effect
$ source ~/.zshrc
我无法找到在bash或readline中添加重做的解决方案,所以如果有人知道其中任何一个的解决方案,请在下面评论,我会尝试添加它们。
对于任何正在查找查找表的人如何将密钥序列转换为十六进制,我觉得这个表非常有帮助。
链接地址: http://www.djcxy.com/p/49363.html上一篇: iTerm 2: How to set keyboard shortcuts to jump to beginning/end of line?