我知道组合Ctrl+A可以跳转到当前命令的开头,Ctrl+E可以跳转到结尾。
但是有没有办法像Cocoa应用程序中的Alt+←/→那样逐字跳转呢?
我知道组合Ctrl+A可以跳转到当前命令的开头,Ctrl+E可以跳转到结尾。
但是有没有办法像Cocoa应用程序中的Alt+←/→那样逐字跳转呢?
当前回答
在iterm2的Preferences > Profile > Keys下,单击Key Mappings下面的+并记录一个新的快捷方式。对于Action,选择发送转义序列,并分别输入b或f用于向后和向前。
当我试图为(Ctrl+←)记录一个时,我注意到在键盘快捷键字段中,箭头从未出现。事实证明,我必须首先禁用mac的默认系统首选项>键盘>快捷方式>任务控制快捷方式才能让事情正常工作,因为它们会覆盖iterm2的默认快捷方式。标准终端应用程序也应该如此。
其他回答
在iterm2的Preferences > Profile > Keys下,单击Key Mappings下面的+并记录一个新的快捷方式。对于Action,选择发送转义序列,并分别输入b或f用于向后和向前。
当我试图为(Ctrl+←)记录一个时,我注意到在键盘快捷键字段中,箭头从未出现。事实证明,我必须首先禁用mac的默认系统首选项>键盘>快捷方式>任务控制快捷方式才能让事情正常工作,因为它们会覆盖iterm2的默认快捷方式。标准终端应用程序也应该如此。
切换到iTerm2。它是免费的,而且比普通的老式终端要好得多。此外,它还有更多的自定义选项,比如键盘快捷键。
另外,我喜欢你可以使用cmd和1-9来切换选项卡。尝试一下,你将永远不会回到常规终端:)
如何在iterm2中设置自定义键盘首选项
安装iTerm2 启动,然后转到首选项窗格。 选择键盘配置文件选项卡 您需要将配置文件复制到新的文件中,然后删除快捷键(如^+右/左),或者如果您不关心备份,只需从默认配置文件中删除它们。 接下来,确保您修改的配置文件被选中(带星号)
现在选择键盘选项卡(最上面一行)
单击加号按钮添加一个新的键盘快捷键 在第一个框中键入CMD+左箭头 在第二个框中选择“发送转义码” 在第三个框中输入字母B
重复使用所需的组合键。escape+B向左移动一个单词,escape+f向右移动一个单词。 你也可以设置cmd+d,用转义+d删除光标前面的单词
我经常用箭头键按错按钮(cmd / control / alt),所以我有我的箭头键组合,这些按钮都设置为向前和向后跳转,但请做最适合你的。
在macOS(所有版本)上,以下键盘快捷键默认工作。
ALT+F跳跃向前一个字。 ALT+B向后跳一个字。
注意,你必须使设置选项键的行为像元键。您可以在终端中通过访问首选项(CMD+,)并选择配置文件->键盘来做到这一点。在“iTerm2 Pselect profile -> Keys -> General”中选择“Option key as Esc+”。
此外,一些用于简单文本导航的emacs风格的键绑定似乎可以在bash shell上工作。你可以使用:
CTRL+F向前移动一个字符 CTRL+B向后移动一个字符 按CTRL+A跳转到行首 按CTRL+E跳转到行尾 按CTRL+K终止从光标位置开始的行 ALT+D删除从当前光标位置开始的单词 按CTRL+W从光标位置向后删除单词 CTRL+Y从终止缓冲区粘贴文本 CTRL+R从历史记录中反向搜索过去键入的命令。 CTRL+S转发搜索(在ZSH为我工作,但不是bash)
如果您碰巧是Vim用户,您可以尝试bash的Vim模式。运行这个或者把它放在~/中。bashrc文件:(
set -o vi
默认情况下,您处于插入模式;点击escape,你就可以像在普通模式的Vim中一样四处移动,所以按字移动是w或b,通常的移动键也可以工作。
从Mac OS X Lion 10.7开始,终端默认将option -左/右箭头映射为Esc-b/f,所以现在bash和其他使用这些emacs兼容键绑定的程序都内置了这个功能。