[英]Fixing <right arrow> in bash vi input mode. Cannot type beyond last character
我正在尝试在bash中使用vi模式。 通过.inputrc(在OSX上):
set editing-mode vi
在vi插入模式下,右箭头键将光标向右移动,但它在行中的最后一个字符处停止。 如果光标超过了行的末尾,则将光标移动到左侧 。 所以,总而言之,你可以去的最右边是行中的最后一个字符。
$ cd /usr/locl/bin
# Move the cursor to the middle of the line, and fix something there
$ cd /usr/local/bin
# Now move the cursor back to the end, and write a character (/)
$ cd /usr/local/bi/n
如上所示,这意味着您无法在不进入命令模式(并使用“a”)的情况下编辑行尾。
我发现一篇文章似乎表明readline / bash的版本可能是问题所在 。 但是我使用brew来升级bash(GNU bash,版本4.3.42),甚至尝试安装和链接readline(6.3.8),正如该站点所推荐的那样。 但没有运气。 升级可能不正确。
注意:我希望在bash中使readline与默认值相同(对于其他定期使用我的终端的人),但允许我使用vim模式。 这意味着我不需要解决方法,而是需要修复。
在这里回答: https : //unix.stackexchange.com/a/222506/198846
显然这是OSX(3.2)附带的bash版本中的一个错误,根据该答案修正了4.3。 使用bash --version
检查你的bash版本。
要修复,请更新bash,例如
macports: sudo port install bash
brew: brew install bash
一旦安装了bash --version
将显示它已更新(假设$ PATH开头的标准brew / macports路径)
然后,您必须将您的默认登录shell(在系统偏好设置 - >用户和组 - >右键单击您的用户 - >高级选项 - >登录shell)更改为新bash的路径:
(默认)macports: /opt/local/bin/bash
(默认)brew: /usr/local/bin/bash
即使which bash
显示了macports / brew which bash
也需要更改默认登录shell步骤。
所有归功于上面链接的答案。
你不能编辑.bashrc本身而不是使用vi模式吗? 命令set -o vi
在我的情况下执行它(您最初处于编辑模式)。 同时删除.inputrc编辑,因为这两个人之后实际上可能会恶意互动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.