用于R命令行的Vi键绑定,如Bash中

时间:2011-06-04 05:52:52

标签: bash r vim keyboard-shortcuts

上下文

我喜欢使用vi样式的键绑定编辑和操作bash命令行,并使用以下设置:

set -o vi

但是,当我在命令行上启动R时,这些键绑定会消失。 我知道当你通过Conque Shell运行R时,Vim-R plugin允许Vim键绑定,但我对这种体验并不完全满意,而且,无论如何,有时我只想在标准命令行上运行R

问题

  • 有没有办法在命令行中在R中获取Vi样式键绑定?

3 个答案:

答案 0 :(得分:13)

感谢Joshua Ulrich和progo的回答,这有助于我开始。

下面我记录我的经历:

初始设置

我尝试了set keymap viset editing-mode vi。当我在我的Gnome终端中启动R时,一些快捷方式有效,而有些则没有。 特别是ccdd(即删除行)根本不起作用,cwdw执行了删除字词的操作,但没有更新显示直到我按下一个额外的键,这不是一个功能性的经验。

替换缺少的功能

我在~/.inputrc添加了以下内容,修复了上述明显的问题:

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

答案 1 :(得分:11)

将此添加到您的.inputrc

set editing-mode vi

答案 2 :(得分:5)

R命令行似乎使用Readline。 Readline使用.inputrc进行设置:

set keymap vi

~/.inputrc