Vi keybindings for R command line like in Bash

回眸只為那壹抹淺笑 提交于 2019-12-03 05:21:48

Thank you to Joshua Ulrich and progo's answers, which helped to get me started.

Below I record my experience:

Initial setup

I tried set keymap vi and set editing-mode vi. When I started R in my Gnome Terminal, some shortcuts worked and others did not. In particular cc, and dd (i.e., delete lines) did not work at all, and cw and dw performed the action of deleting words but did not update the display until I pressed an additional key, which is not a functional experience.

Replacing missing functionality

I added the following to ~/.inputrc, which fixed the obvious problems mentioned above:

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

Add this to your .inputrc:

set editing-mode vi

The R commandline seems to use Readline. Readline uses .inputrc for settings:

set keymap vi

to your ~/.inputrc.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!