Next: , Previous: Invoking R, Up: Top



Appendix C 命令行編輯器

C.1 預備工作

如果你的 UNIX 系統已經安裝了 GNU readline 庫, 那麼 R 配置中允許在 UNIX 下編譯 R 代碼,調用內置的 命令行編輯器,編輯和重新調用以前用過的命令。 注意:該附錄提到的介面不是用於 UNIX 系統的 GNOME介面,而僅僅用於標準的命令行 介面。

如果啟動時設置了參數 --no-readline (使用 ESS 時非常有用1), 則該命令不可用。

Windows 版本的 R 有簡單的命令行編輯功能; 見 GUI 介面的 Help 功能表下的 Console,已經 描述 Rterm.exe 的命令行操作的 文件 README.Rterm

當使用 readline 寫 R 命令時,下麵 描述的函數可用。

這些函數常常是控制字元或者是元字元(Meta character)。控制字元,如 Control-m 表示同時按住 <CTRL> 和 <m> 鍵,並且以 C-m 形式表示。元字元,如 Meta-b 表示同時按住 <META>2 和 <b> 鍵,下麵以 M-b 形式記錄。如果你的終端沒有 <META> 鍵,你可以用 ESC 開始的兩個字元序列 鍵入元字元。因此對於 M-b,你可以鍵入 <ESC><b>。ESC 字元序列在 有真正元鍵的終端也是允許的。注意這種情況 對元字元有特殊意義的。

C.2 編輯

R 保存你鍵入的命令行的歷史, 包括錯誤的命令。歷史檔中的命令可以被重新調用,修改 以新的命令的形式重新提交。在 Emacs-形式的命令行編輯中,任何直接的輸入 都會將字元直接插入到你所編輯的命令中, 並且取代游標右側的字元。 vi 輸入模式是通過 M-iM-a 啟動,字元可以被鍵入並且通過鍵入 <ESC> 結束輸入模式。

任何時候鍵入 <RET> 都會使得命令 重新被提交。

其他的編輯命令在下面的表中有所總結。

C.3 命令行編輯總結

重新調用命令和垂直移動

C-p
跳到前一個命令(回溯歷史檔)。
C-n
跳到下一個命令(前溯歷史檔)。
C-r text
搜索含有字串 text 的最後一個命令。

在大多數終端,你可以使用上下鍵分別代替 C-pC-n

水準移動指標

C-a
回到命令行開頭。
C-e
跳到命令行結束。
M-b
回溯一個單詞。
M-f
前溯一個單詞。
C-b
回溯一個字元。
C-f
前溯一個字元。

在大多數終端,你可以使用左右鍵分別代替 C-bC-f

編輯和再提交

text
在游標處插入文本 text
C-f text
在游標後插入 text
<DEL>
刪除前面的字元(游標左側)。
C-d
刪除游標處的字元。
M-d
刪除游標處單詞以外的部分,並且“保存”它們。
C-k
刪除游標到命令結束的部分,並且“保存”它們。
C-y
插入最後“保存”的文本。
C-t
轉置游標處的文本。
M-l
將字元轉換成小寫字元。
M-c
將單詞轉換成大寫。
<RET>
重新向 R 提交命令。

最後的 <RET> 命令將會終止命令行編輯。


Footnotes

[1] `Emacs Speaks Statistics' 包;參見 URL http://ESS.R-project.org

[2] 在 PC 鍵盤上,它常常是 Alt 鍵,偶爾是`Windows'鍵。