簡體   English   中英

R 命令行的 Vi 鍵綁定,如 Bash

[英]Vi keybindings for R command line like in Bash

語境

我喜歡使用 vi 風格的鍵綁定和以下設置來編輯和操作 bash 命令行:

set -o vi

但是,當我在命令行上啟動 R 時,這些鍵綁定消失了。 I know that the Vim-R plugin allows for Vim keybindings when you run R through the Conque Shell, but I'm not entirely happy with that experience, and, regardless, sometimes I just want to run R on the standard command-line.

問題

  • 有什么方法可以在命令行的 R 中獲取 Vi 風格的鍵綁定?

感謝 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

將此添加到您的.inputrc

set editing-mode vi

R 命令行似乎使用 Readline。 Readline 使用.inputrc進行設置:

set keymap vi

到你的~/.inputrc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM