Vi keybindings for R command line like in Bash

后端 未结 3 733
盖世英雄少女心
盖世英雄少女心 2021-02-05 13:35

Context

I like editing and manipulating the bash command line using vi-style key bindings with the following setting:

set -o vi

Howev

3条回答
  •  野的像风
    2021-02-05 13:59

    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 found this inputrc file that gave me a few ideas.
    • The help page was helpful, naturally.

    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
    

提交回复
热议问题