在嵌入式的學習中,通常需要在終端模式下進行文字編輯或者修改檔案。一般是使用 vim 編輯器,Ubuntu 自帶了vim編輯器,但是vim編輯器和windows下的編輯器在使用上有很大不同。vim 編輯器是一種基於指令式的編輯器,不需要滑鼠,也沒有選單,僅僅使用鍵盤就可以完成所有的編輯工作,這也是vim快速高效率編輯的一大原因。
由於vim的安裝設定比較簡單,此處將略過vim在各種系統環境的中的安裝設定過程。本文中的vim的基本操作案例將會在linux環境下進行。
在學習進行基本操作之前,有必要先瞭解一下 「模式介面」 。簡單來講,現代主流的文字編輯器都是 「無模式介面」,「無模式」 指的是每個介面元素都只有一個功能,每個按鈕都對應於螢幕上的一個字母或某種其他操作,每個按鍵(或組合鍵)總是做同樣的事:此應用程式總是以單一模式來執行操作。比如在記事本中編輯,任何時候輸入「o」,就只是執行在文字中插入「0」字元。而 」模式介面「 就是介面元素能夠根據上下文的不同,輸入同一個按鈕,會產生不同的結果。比如在模式編輯器vim中輸入「o」,如果是在插入模式下,則是在文字中插入「o」字元,如果是在其他模式下,則可能執行的是在遊標下新增新行。
「模式編輯器」 讓文字處理就像是與編輯器進行了一次親密對話,而且是用同樣的語言與編輯器進行交流,比如「在vim中編輯時通過命令d3w[剛好是刪除(delete)3個單詞(word)的英文縮寫]可以刪除後面3個詞;通過命令ci"[改變(change)引號裏面(inside)的英文縮寫]則可以改變引號裏面的文字。」
使用Vim,文字編輯將變的更從容。
本篇中主要涉及vim的三種模式:命令模式、正常模式和插入模式,其它模式暫不介紹。
本節將根據檔案常規操作流程的順序來展示範例。
$ vim animal_farm.py "建立/開啓animal_farm.py檔案
如果之前已經打開了vim,則可在vim中輸入如下命令來開啓這個檔案:
: e animal_farm.py 」 ":"進入vim的命令模式,「e" 表示編輯(edit)
開啓檔案後,vim預設處於正常模式(normal mode ),這中模式下,輸入的每個鍵都對應與某個命令,比如此時輸入「i」,vim將進入插入模式(insert mode)(進入插入模式後,它會在底部的狀態列中顯示-- INSERT --字樣),進入插入模式有如下幾種命令:
指令 | 描述 |
---|---|
i | 在當前遊標所在字元的前面,轉爲編輯模式。 |
I | 在當前遊標所在行的行首轉換爲編輯模式。 |
a | 在當前遊標所在字元的後面,轉爲編輯模式。 |
A | 在遊標所在行的行尾,轉換爲編輯模式。 |
o | 在當前遊標所在行的下方,新建一行,並轉爲編輯模式。 |
O | 在當前遊標所在行的上方,新建一行,並轉爲編輯模式。 |
在vim中輸入完成後,想要儲存文字,可以按下Esc 鍵,進入正常模式,在此模式下輸入「:」,進入命令模式,在命令模式下可輸入如下幾種命令來儲存或退出檔案:
命令 | 描述 |
---|---|
x | 儲存當前文件並且退出。 |
q | 退出。 |
w | 儲存文件 。 |
q! | 退出 vi/vim,不儲存文件。 |
注意: vim儲存文字的命令是在命令模式中,在正常模式裡是不能執行文字的儲存退出命令的,但是在正常模式下可以進行以下幾類操作:
1)、移動遊標
命令 | 描述 |
---|---|
h (或左方向鍵) | 遊標左移一個字元。 |
l (或右方向鍵) | 遊標右移一個字元。 |
j (或下方向鍵) | 遊標下移一行。 |
k (或上方向鍵) | 遊標上移一行。 |
nG | 遊標移動到第 n 行首。 |
n+ | 遊標下移 n 行。 |
n- | 遊標上移 n 行。 |
2)、螢幕翻滾
命令 | 描述 |
---|---|
Ctrl + f | 螢幕向下翻一頁,相當於下一頁。 |
Ctrl + b | 螢幕向上翻一頁,相當於上一頁。 |
3)、複製、刪除和貼上
命令 | 描述 |
---|---|
cc | 刪除整行,並且修改整行內容。 |
dd | 刪除該行,不提供修改功能。 |
ndd | 刪除當前行向下 n 行。 |
x | 刪除遊標所在的字元。 |
X | 刪除遊標前面的一個字元。 |
nyy | 複製當前行及其下面 下麪 n 行。 |
p | 貼上最近複製的內容。 |
s | 刪除遊標所在字元。 |
r | 替換遊標處字元。 |
由以上可以得出這樣一個大概的印象:vim的正常模式,主要是對文字進行瀏覽和簡單修改,插入模式則是對文字進行較多的文字內容插入,命令模式下,則是進行層次較高的命令操作,如儲存退出這種命令。
補充一點:在儲存退出vim編輯後,在Linux終端可以使用下列命令直接檢視編輯後的檔案:
$ cat animal_farm.py
Vim提供了一個學習工具:help命令
: help
:help cc "檢視cc命令的幫助手冊
:help search-commands "檢視search命令的幫助資訊,之所以加「-commands」,是因爲直接輸入:help search 命令得到的是白哦大師評估而不是命令的說明
預設情況下,Vim用交換檔案跟蹤檔案的變化情況。當使用者編輯檔案的時候,Vim會自動產生交換檔案。交換檔案的作用是恢復檔案內容,以防止使用者的Vim、SSH對談或系統崩潰。一旦出現上述問題,或者由於其他失誤意外地退出Vim,再次用Vim開啓同一個檔案時,就會看到一個提示訊息,這時,可以輸入「r」從交換檔案中恢復檔案,或者輸入「d」直接忽略交換檔案。如果讀者決定從交換檔案中恢復,爲了避免下次開啓此檔案時再次出現這個提示,可以輸入「d」刪除交換檔案。
本篇介紹了vim的簡單使用,主要是檔案基本的瀏覽、修改、編輯以及儲存等最基本的操作。對於vim的各種設定,外掛的使用以及更高階的操作暫時不作深入探討。
在學習vim的時候,搜到了一本《Vim8文字處理實戰》感覺還算是比較適合新手學習。