繁体   English   中英

定影 <right arrow> 在bash vi输入模式下。 无法输入超出最后一个字符

[英]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),正如该站点所推荐的那样。 但没有运气。 升级可能不正确。

这意味着我正在寻找以下其中一项:

  • 在OSX终端中升级bash和readline的正确方法
  • 一种检查OSX实际使用的bash / readline版本的方法
  • 这个bug的另一个修复(以某种方式传递inputrc中的virtualedit = onemore选项)
  • 最新版本的readline可能重新引入了错误和解决方案的迹象。
  • 另外:如果与editrc有类似的东西

注意:我希望在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM