基本上 vi 共分為三種模式,分別是『一般模式』、『編輯模式』與『指令列命令模式』。 這三種模式的作用分別是:
* 一般模式:
以 vi 開啟乙個檔案就直接進入一般模式了(這是預設的模式)。在這個模式中, 你可以使用『上下左右』按鍵來移動游標,你可以使用『刪除字元』或『刪除整行』來處理檔案內容, 也可以使用『複製、貼上』來處理你的檔案資料。
在一般模式中可以進行刪除、複製、貼上等等的動作,但是卻無法編輯檔案內容的! 要等到你按下『i, i, o, o, a, a, r, r』等任何乙個字母之後才會進入編輯模式。注意了!通常在 linux 中,按下這些按鍵時,在畫面的左下方會出現『 insert 或 replace 』的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下『esc』這個按鍵即可退出編輯模式。
* 指令列命令模式:
在一般模式當中,輸入『 : / ? 』三個中的任何乙個按鈕,就可以將游標移動到最底下那一行。在這個模式當中, 可以提供你『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號等等的動作則是在此模式中達成的!
第一部份:一般模式可用的按鈕說明,游標移動、複製貼上、搜尋取代等
移動游標的方法
h 或 向左箭頭鍵(←)
游標向左移動乙個字元
j 或 向下箭頭鍵(↓)
游標向下移動乙個字元
k 或 向上箭頭鍵(↑)
游標向上移動乙個字元
l 或 向右箭頭鍵(→)
游標向右移動乙個字元
如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動游標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!
[ctrl] + [f]
螢幕『向下』移動一頁,相當於 [page down]按鍵 (常用)
[ctrl] + [b]
螢幕『向上』移動一頁,相當於 [page up] 按鍵 (常用)
[ctrl] + [d]
螢幕『向下』移動半頁
[ctrl] + [u]
螢幕『向上』移動半頁
+ 游標移動到非空格符的下一列
- 游標移動到非空格符的上一列 n
那個 n 表示『數字』,例如 20 。按下數字後再按空格鍵,游標會向右移動這一行的 n 個字元。例如 20則游標會向後面移動 20 個字元距離。
0 或功能鍵[home]
這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[end]
移動到這一行的最後面字元處(常用)
h
游標移動到這個螢幕的最上方那一行的第乙個字元
m 游標移動到這個螢幕的**那一行的第乙個字元
l 游標移動到這個螢幕的最下方那一行的第乙個字元
g 移動到這個檔案的最後一行(常用)
ng
n 為數字。移動到這個檔案的第 n 行。例如 20g 則會移動到這個檔案的第 20 行(可配合 :set nu)
gg
移動到這個檔案的第一行,相當於 1g 啊! (常用)
n n 為數字。游標向下移動 n 行(常用)
搜尋與取代
/word
向游標之下尋找乙個名稱為 word 的字串。例如要在檔案內搜尋 vbird 這個字串,就輸入 /vbird 即可! (常用)
?word
向游標之上尋找乙個字串名稱為 word 的字串。
n 這個 n 是英文按鍵。代表『重複前乙個搜尋的動作』。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字串,則按下 n 後,會向下繼續搜尋下乙個名稱為 vbird 的字串。如果是執行 ?vbird 的話,那麼按下 n 則會向上繼續搜尋名稱為 vbird 的字串!
n 這個 n 是英文按鍵。與 n 剛好相反,為『反向』進行前乙個搜尋動作。 例如 /vbird 後,按下 n 則表示『向上』搜尋 vbird 。
:n1,n2s/word1/word2/g n1 與 n2 為數字。在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 !舉例來說,在 100 到 200 行之間搜尋 vbird 並取代為 vbird 則:
『:100,200s/vbird/vbird/g』。(常用)
:1,$s/word1/word2/g
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !(常用)
:1,$s/word1/word2/gc
從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者確認 (confirm) 是否需要取代!(常用)
刪除、複製與貼上
x, x
在一行字當中,x 為向後刪除乙個字元 (相當於 [del] 按鍵), x 為向前刪除乙個字元(相當於 [backspace] 亦即是退格鍵) (常用)
nx
n 為數字,連續向後刪除 n 個字元。舉例來說,我要連續刪除 10 個字元, 『10x』。
dd
刪除游標所在的那一整列(常用)
ndd
n 為數字。刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 列 (常用)
d1g
刪除游標所在到第一行的所有資料
dg
刪除游標所在到最後一行的所有資料
d$
刪除游標所在處,到該行的最後乙個字元
d0
那個是數字的 0 ,刪除游標所在處,到該行的最前面乙個字元
yy
複製游標所在的那一行(常用)
nyy
n 為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 列(常用)
y1g
複製游標所在列到第一列的所有資料
yg
複製游標所在列到最後一列的所有資料
y0
複製游標所在的那個字元到該行行首的所有資料
y$
複製游標所在的那個字元到該行行尾的所有資料
p, p
p 為將已複製的資料在游標下一行貼上,p 則為貼在游標上一行! 舉例來說,我目前游標在第 20 行,且已經複製了 10 行資料。則按下 p 後, 那 10 行資料會貼在原本的 20 行之後,亦即由 21 行開始貼。但如果是按下 p 呢? 那麼原本的第 20 行會被推到變成 30 行。 (常用)
j
將游標所在列與下一列的資料結合成同一列
c 重複刪除多個資料,例如向下刪除 10 行,[ 10cj ]
u 復原前乙個動作。(常用)
[ctrl]+r
重做上乙個動作。(常用)
這個 u 與 [ctrl]+r 是很常用的指令!乙個是復原,另乙個則是重做一次~ 利用這兩個功能按鍵,你的編輯,嘿嘿!很快樂的啦!
不要懷疑!這就是小數點!意思是重複前乙個動作的意思。 如果你想要重複刪除、重複貼上等等動作,按下小數點『.』就好
第二部份:一般模式切換到編輯模式的可用的按鈕說明了! (常用)
進入插入或取代的編輯模式
i, i
進入插入模式(insert mode):
i 為『從目前游標所在處插入』, i 為『在目前所在行的第乙個非空格符處開始插入』。 (常用)
a, a
進入插入模式(insert mode):
a 為『從目前游標所在的下乙個字元處開始插入』, a 為『從游標所在行的最後乙個字元處開始插入』。(常用)
o, o
進入插入模式(insert mode):
r, r
進入取代模式(replace mode):
r 只會取代游標所在的那乙個字元一次;r會一直取代游標所在的文字,直到按下 esc 為止;(常用)
上面這些按鍵中,在 vi 畫面的左下角處會出現『--insert--』或『--replace--』的字樣。 由名稱就知道該動作了吧!!特別注意的是,我們上面也提過了,你想要在檔案裡面輸入字元時, 一定要在左下角處看到 insert 或 replace 才能輸入喔!
[esc]
退出編輯模式,回到一般模式中(常用)
第三部份:一般模式切換到指令列模式的可用的按鈕說明
指令列的儲存、離開等指令
:w
將編輯的資料寫入硬碟檔案中(常用)
:w!
若檔案屬性為『唯讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案許可權有關啊!
:q
離開 vi (常用)
:q!
若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。
注意一下啊,那個驚嘆號 (!) 在 vi 當中,常常具有『強制』的意思~
:wq
儲存後離開,若為 :wq! 則為強制儲存後離開 (常用)
zz
這是大寫的 z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開!
:w [filename]
將編輯的資料儲存成另乙個檔案(類似另存新檔)
:r [filename]
在編輯的資料中,讀入另乙個檔案的資料。亦即將 『filename』 這個檔案內容加到游標所在行後面
:n1,n2 w [filename]
將 n1 到 n2 的內容儲存成 filename 這個檔案。
:! command
暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案資訊!
vim 環境的變更
:set nu
顯示行號,設定之後,會在每一行的字首顯示該行的行號
:set nonu
與 set nu 相反,為取消行號!
菜鳥學Linux(2)品嚐鳥哥私房菜
例如查詢date命令的使用方法,可以輸入 man date就可以看到使用說明。代號內容說明 name 簡短的命令 資料名稱說明 synopsis 簡短的命令下達語法 syntax 簡介 description 較為完整的說明,這部分最好仔細看看!options 針對 synopsis 部分中,有列舉...
菜鳥學Linux(4)品嚐鳥哥私房菜
目錄的相關操作 代表此層目錄 代表上一層目錄 代表前乙個工作目錄 代表目前使用者的home目錄 acount 代表acount使用者的home目錄 cd變化目錄指令 cd 相對路徑或者絕對路徑 pwd顯示目前所在的目錄 pwd p p代表顯示確實的目錄而非link連線目錄 mkdir建立目錄 mkd...
鳥哥的linux私房菜 學習筆記5
fedora預設使用gnome3 x window重啟快捷鍵 alt ctrl backspace linux預設的情況下會提供6個terminal來讓使用者登入 我在fedora20上的實驗結果是 缺少tty1。ctrl alt f1為圖形介面,f2 f6 為 tty2 tty6 如果以純文字模式...