我在我的Mac OS系统set editing-mode vi
中“.inputrc
”,它允许在IRB中进行vi编辑。当我使用RVM Ruby时,IRB会话不处理此指令。
有人知道解决方案吗?
答案 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) 上观察这个
所以你必须两者都做以确保。一种方法对另一种不起作用