问题描述
|
语境
我喜欢使用具有以下设置的vi样式的键绑定来编辑和操作bash命令行:
set -o vi
但是,当我在命令行上启动R时,这些键绑定消失了。
我知道当您通过Conque Shell运行R时,Vim-R插件允许Vim绑定,但是我对这种体验并不完全满意,无论如何,有时我只想在标准命令行上运行R 。
题
是否可以通过命令行在R中获得Vi样式的键绑定?
解决方法
感谢Joshua Ulrich和progo的回答,这有助于我入门。
下面我记录我的经验:
初始设置
我尝试了
set keymap vi
和set editing-mode vi
。当我在Gnome终端中启动R时,某些快捷方式有效,而其他快捷方式则无效。
特别是cc
和dd
(即删除行)根本不起作用,cw
和dw
执行删除单词的操作,但是直到我按下附加键后才更新显示,这不是功能上的经验。
替换缺少的功能
我发现这个inputrc文件给了我一些想法。
帮助页面自然很有帮助。
我在“ 7”中添加了以下内容,从而解决了上述明显的问题:
set completion-ignore-case on
set editing-mode vi
$if mode=vi
set keymap vi-insert
\"\\C-l\": clear-screen
\"\\C-p\": history-search-backward
\"\\C-n\": history-search-forward
# alt dot cycles through last argument
\"\\e.\":yank-last-arg
set keymap vi-command
\"D\":kill-line
\"dw\": kill-word
\"dd\": kill-whole-line
\"db\": backward-kill-word
\"cc\": \"ddi\"
\"cw\": \"dwi\"
\"cb\": \"dbi\"
\"diw\": \"lbdw\"
\"yiw\": \"lbyw\"
\"ciw\": \"lbcw\"
\"diW\": \"lBdW\"
\"yiW\": \"lByW\"
\"ciW\": \"lBcW\"
\"gg\": beginning-of-history
\"G\": end-of-history
$endif
, 将此添加到您的.inputrc
:
set editing-mode vi
, R命令行似乎使用Readline。 Readline使用ѭ9进行设置:
set keymap vi
到你的~/.inputrc
。