I like editing and manipulating the bash command line using vi-style key bindings with the following setting:
set -o vi
Howev
The R commandline seems to use Readline. Readline uses .inputrc
for settings:
set keymap vi
to your ~/.inputrc
.
Thank you to Joshua Ulrich and progo's answers, which helped to get me started.
Below I record my experience:
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.
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