使用RVM时,如何在IRB中使vi编辑模式工作?

时间:2011-07-09 16:50:43

标签: rvm vi irb

我在我的Mac OS系统set editing-mode vi中“.inputrc”,它允许在IRB中进行vi编辑。当我使用RVM Ruby时,IRB会话不处理此指令。

有人知道解决方案吗?

5 个答案:

答案 0 :(得分:22)

您是否在命令行或其中一个启动脚本中设置了set -o vi?这为shell打开了它。我同时拥有“set editing-mode vi”和set -o vi,并在IRB中进行类似Vi的编辑。


编辑:

尝试创建~/.editrc,将bind -v放入其中。 Snow Leopard支持内置的editline,因此可能是IRB正在使用的内容。

请尝试man 5 editrc了解详情。

答案 1 :(得分:10)

如前所述,您可以在bind -v中添加~/.editrc

这个问题,正如您可能已经注意到或未注意到的那样,这会消除您使用制表符完成的能力。如果您想保留标签页,请添加:bind \\t rl_complete到您的标签 ~/.editrc

答案 2 :(得分:6)

在Mountain Lion上使用RVM安装的Ruby 1.9.3,我能够通过向〜/ .editrc添加bind -v来获取irb中的vi键绑定。我在同一系统上使用RVM安装了Ruby 2.0,并且irb陷入了emacs模式。将set editing-mode vi添加到〜/ .inputrc让我在Ruby 2.0上使用irb工作的vi键绑定。

答案 3 :(得分:0)

这几天,我在MacOS Mojave上使用rbenv安装的Ruby 2.5,在irb中获取vi键绑定的方法是将set editing-mode vi添加到~/.inputrc

似乎不需要向bind -v添加~/.editrc,也无济于事。

答案 4 :(得分:0)

我在 BigSur (11.1) 上观察这个

  • 如果使用原生 ruby​​ - 编辑 ~/.editrc 以添加 'bind -v'
  • 如果使用 RVM 构建的 ruby​​ - 编辑 ~/.inputrc 并添加“设置编辑模式 vi”

所以你必须两者都做以确保。一种方法对另一种不起作用