以下问题来源于《鸟哥的linux私房菜》
在 linux 底下最常使用的文書編輯器為 vi ,請問如何進入編輯模式?
在一般模式底下輸入: i, I, a, A 為在本行當中輸入新字元;(出現 –Insert- )i表示光标不移动,I表示光标移动到本行首,a表示光标移到下一位,A表示光标移到本行尾
在一般模式當中輸入: o, O 為在一個新的一行輸入新字元; o表示在光标的下一行,O表示在光标的本行
在一般模式當中輸入: r, R 為取代字元!(左下角出現 –Replace-) r表示在光标所在地方取代字元,R表示在光标所在地方的下一个地方取代字元
如何由編輯模式跳回一般模式?
[Esc]
若上下左右鍵無法使用時,請問如何在一般模式移動游標?
h, j, k, l
h表示向左移一个,l表示向右移一个,k表示向上移一个,j表示向下移一个,
若 [pagedown] [ pageup] 在一般模式無法使用時,如何往前或往後翻一頁?
[Ctrl] + [b] 向前翻页
[Ctrl] + [f] 向后翻页
一般模式下如何到本檔案的最後一行、第一行;本行的第一個字元、最後一個字元?
G ,g, 0,$
如何刪除一行、n行;如何刪除一個字元?
dd, ndd或dnd, x (dG 及 d1G 分別表示刪除到頁首及頁尾)
如何複製一行、n行並加以貼上?
yy, nyy或yny, p 或 P p表示光标的下一行复制,P表示光标的本行复制
如何搜尋 string 這個字串?
?string (往前搜尋)
/string (往後搜尋)
如何取代 word1 成為 word2,而若需要使用者確認機制,又該如何?
:1,$s/word1/word2/g 或
:1,$s/word1/word2/gc (需要使用者確認)
当需要使用者确认时,会出现如下图:
y表示可以取代 n表示不修改跳到下一个取代的位置 a表示从当前光标以后,全部取代 q表示全部取消
l表示只取代当前光标上的,然后取消
如何讀取一個檔案 filename 進來目前這個檔案?
:r filename
如何另存新檔成為 newfilename?
:w newfilename
如何存檔、離開、存檔後離開、強制存檔後離開?
:w :q :wq :wq!
如何設定與取消行號?
:set nu
:set nonu