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

这是需要它的人的视觉效果

iTerm添加关键视觉


要在iTerm2中的单词和行的开始/结尾之间跳转,请执行以下步骤:

  • iTerm2 - >首选项(⌘+,)
  • 打开“Keys”选项卡
  • 添加以下全局快捷键
  • 将光标向左移动一个单词

  • 键盘组合:⌥+←
  • 操作:发送十六进制代码
  • 代码: 0x1b 0x62
  • 向右移动光标一个字

  • 键盘组合:⌥+→
  • 操作:发送十六进制代码
  • 代码: 0x1b 0x66
  • 将光标移动到行首

  • 键盘组合:⌘+←
  • 操作:发送十六进制代码
  • 代码: 0x01
  • 将光标移动到行尾

  • 键盘组合:⌘+→
  • 操作:发送十六进制代码
  • 代码: 0x05
  • 删除单词

  • 键盘组合:⌥+←删除
  • 操作:发送十六进制代码
  • 代码: 0x1b 0x08
  • 删除线

  • 键盘组合:⌘+←删除
  • 操作:发送十六进制代码
  • 代码: 0x15
  • 解开

  • 键盘组合:⌘+ z
  • 操作:发送十六进制代码
  • 代码: 0x1f
  • 不要忘记删除以前的绑定

  • 打开“配置文件”选项卡
  • 点击子选项卡“Keys”
  • 删除组合键ma +←和⌥+→的映射

  • 我已经看到了很多很好的答案,但是它应该尽可能地提供最接近本地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?

    下一篇: How to clear previous output in Terminal in Mac OS X?