Linux學習筆記之VI(VIM)編輯器

來源:互聯網
上載者:User

標籤:

百度關於vi的資料 http://baike.baidu.com/view/908054.htm

關於vi 和vim的介紹可以在上面的網址看到。

1   進入和退出vi

進入:在終端命令列輸入 vi 檔案名稱   就會進入vi,並且建立了一個空的名字為剛才輸入的檔案,假如進入vi的時候不加檔案名稱,那麼進入vi後系統會自動建立一個空檔案,你可以在命令模式下給這個檔案改名。

退出:按ESC切換到命令模式下,輸入

:q   這是沒有儲存就退出,一般系統會提示你要不要儲存

:q!  強制退出,不儲存

:wq  儲存並退出

如果之前沒有命名檔案名稱,可以在w後跟上你想要起的檔案名稱

 

2 vi 的三種模式

命令模式(進入時的預設模式):

任何輸入都會作為編輯命令,內容不會出現在螢幕上,如果輸入錯誤,系統會發出錯誤提示聲音。任何輸入都會立即反應;

輸入模式(編輯模式):

從命令模式進入輸入模式,可以輸入i健,然後就可以輸入字元了,在輸入模式下按ESC會返回命令模式;

特殊模式(最後行模式):

以“:“或者”/“為前置的指令,出現在螢幕的最後一行,任何輸入都會被當成特別指令。

( 所以上次我們寫C程式的步驟就是:終端輸入 vi hello.c  進入vi編輯器,此時預設為命令模式,按i健進入編輯模式,然後就可以輸入程式了,完成以後,按ESC鍵,即退出編輯模式,進入了命令模式,然後輸入“:“,即進入最後行模式,然後我們輸入儲存退出命令wq 即可。)

 

Vi中關於編輯的命令非常多,這裡就不一一介紹了,網上有很多,命令關鍵在於使用,只有使用熟練了,才能體會到vi編輯器的效率。下面是節選自《Linux C編程》(清華出版社,李玉波)中的一節介紹vim的,vim的命令基本和vi一樣,大家可以參考。

 

 

    vim(vi improve)可以說是Linux中功能最為強大的編輯器,它是由UNIX系統下的傳統文字編輯器vi發展而來的。下面首先介紹一下vi。

    vi是個可視化的編輯器(vi就意味著可視化—— visual)。 那麼,什麼是可視化的編輯器呢?可視化的編輯器就是可以在編輯文本的時候看到它們。非可視化的編輯器的例子可以舉出不少,如ed、sed和edlin(它是DOS內建的最後一個編輯器) 等。vi成為BSD UNIX的一部分,後來AT&T也開始用vi,於是標準UNIX也開始 用vi。Linux下的vim是vi的一個增強版本,有彩色和高亮等特性,對編程有很大的協助。

1. 啟動與退出vim

     由於vim的功能很多,首先來看如何啟動和退出vim。

(1) 在Linux提示符下鍵入vim(或使用vim myfile來編輯已經存在的檔案)即可啟動它。

(2) 要退出vim,先按下Esc鍵回到命令列模式,然後鍵入“:”,此時游標會停留在最下面一行,再鍵入“q”,最後按下Enter鍵即可,見圖2-1。

技巧:

    在X-Window下也可以通過在“開始”菜單裡找到“編程”︱Vi I Mproved來運行X-Window下的vim。

2. 命令列模式的操作

命令列模式提供了相當多的按鍵及組合按鍵來執行命令,協助使用者編輯檔案。由於這些命令相當多,在此僅作簡單介紹。

(1) 移動游標

在命令列模式和插入模式下,都可以使用上、下、左、右4個方向鍵來移動游標的位置。但是有些情況下,如使用telnet遠程登陸時,方向鍵就不能用,必須用命令列模式下的游標移動命令。這些命令及作用見表2-1。

 

表2-1  常用的移動游標的命令

 

命    令

操 作 說 明

h

將游標向左移動一格

l

將游標向右移動一格

j

將游標向上移動一格

k

將游標向下移動一格

0

將游標移動到該行的最前面

$

將光移動到該行的最後面

G

將游標移動到最後一行的開頭

W或w

將游標移動到下一個字

e

將游標移動到本單詞的最後一個字元。如果游標所在的位置為本單詞的最後一個字元,則跳動到下一個單字的最後一個字元。標點符號如“.”、“,”或“/”等字元都會被當成一個字

b

將游標移動到單詞的最後一個字元,如果游標所在位置為本單詞的第一個字元,則跳到上一個單詞的第一個字元

{

將游標移動到前面的“{”處。在C語言編程時,如果按兩次就會找到函數開頭“{”處,如果再次連續按兩次還可以找到上一個函數的開頭處

}

同“{”的使用,將游標移動到後面的“}”

Ctrl+b

如果想要翻看文章的前後,可以使用Page Down和Page Up;但當這兩個鍵不能使用時,可以使用Ctrl+b將游標向前卷一頁,相當於Page Up

Ctrl+f

將游標向後卷一頁,相當於Page Down

Ctrl+u

將游標向前移半頁

Ctrl+d

將游標向後移半頁

Ctrl+e

將游標向下卷一行

Ctrl+y

將游標向後卷一行

N+\

將游標移至第n行(n為數字)

(2) 複製文本

複製文本可以節省重複輸入的時間,vim也提供了以下的操作命令,見表2-2。

表2-2  常用的複製文本的命令

 

命    令

操 作 說 明

y+y

將游標目前所在的位置整行複製(連續按兩次y)

y+w

複製游標所在的位置到整個單詞所在的位置(w,可以理解為word,即一個單詞)

n+y+w

若輸入3yw,則會將游標所在位置到單詞結束以及後面兩個單詞(共3個單詞)一起複製

n+y+y

若按3yy,則將連同游標所在位置的一行與下面兩行一起複製

p

將複製的內容粘貼游標所在的位置。若複製的是整行文本,則會將整行內容粘貼到游標所在的位置

(3) 刪除文本

刪除文本命令一次可刪除一個字元,也可以一次刪除好幾個字元或是整行文本,見表2-3。

表2-3  常用的刪除文本的命令

 

命    令

操 作 說 明

d+左方向鍵

連續按d和左方向鍵,將游標所在位置前一個字元刪除

d+右方向鍵

將游標所在位置字元刪除

d+上方向鍵

將游標所在位置行與其上一行同時刪除

d+下方向鍵

將游標所在位置行與下一行同時刪除

d+d

連按兩次d,可將游標所在的行刪除,若是連續刪除,可以按住d不放

d+w

刪除游標所在位置的單詞,若是游標在兩個字之間,則刪除游標後面的一個字元

n+d+d

刪除包括游標所在行及向下的n行(n為數字)

n+d+上方向鍵

刪除包括游標所在行及向上的n行

n+d+下方向鍵

同n+d+d命令

D

將游標所在行後所有的單詞刪除

x

將游標所在位置的字元刪除

X

將游標所在位置前一個字元刪除

n+x

刪除游標所在位置及其後的n個字元

n+X

刪除游標所在位置及其前的n個字元

 

(4) 找出行數及其他按鍵

當我們編寫程式時,常常需要跳到某一行去修改,因此每一行的行號就相當重要。vim為此提供的命令見表2-4。

表2-4  常用的找出行數的命令

 

命    令

操 作 說 明

Ctrl+g

在最後一行中顯示光線標所在位置的行數及文章的總行數

nG

將游標移至n行(n為數字)

修改游標所在字元

R

修改游標所在位置的字元,可以一直替換字元,直到按下ESC鍵

u

表示複原功能

U

取消對行所做的所有改變

.

重複執行上一命令

Z+Z

連續兩次輸入z,表示儲存檔案並退出vi

%

符號匹配功能,在編輯時,如果輸入“%(”,系統將會自動匹配相應的“)”

3. 命令列模式切換到輸入模式

進入vim時,預設的模式是命令列模式,而要進入輸入模式輸入資料時,可以用下列按鍵:

●       按“a”鍵  從目前游標所在位置的下一個字元開始輸入。

●       按“i”鍵  從游標所在位置開始插入新輸入的字元。

●       按“o”鍵  新增加一行,並將游標移到下一行的開頭。

4. 最後行模式的操作

vim的最後行模式是指可以在介面最底部的一行顯示的輸入命令,一般用來執行尋找特定的字串、儲存及退出等任務。在命令列模式下輸入冒號“:”,就可以進入最後行模式了,還可以使用“?”和“/”鍵進入最後行模式。比起命令列模式的諸多操作命令,最後行模式的操作命令就少多了,見表2-5。

表2-5  最後行模式主要的操作命令

 

命    令

操 作 說 明

e

在vi中編輯時,可以使用e建立新的檔案

n

載入新檔案

w

寫檔案,也就是將編輯的內容儲存到檔案系統中。vim在編輯檔案時,先將編輯內容儲存在臨時檔案中,如果沒有執行寫操作直接退出的話,修改內容並沒有儲存到檔案中

w!

如果想寫唯讀檔案,可以使用w!強制寫入檔案

q!

表示退出vim,但是檔案內容有修改的話,系統會提示要先儲存,如果不儲存退出,需要使用命令q!強制退出

set nu

set可以設定vim 的某些特性,這裡是設定每行開頭提示行數。想取消設定,使用命令set none

/

尋找匹配字串功能。在編輯時,想尋找包含某一個字串,可以用“/字串”自動尋找,系統會反白所有找到的字串,並轉到找到的第一個字串。如果想繼續向下尋找,可以按n鍵;向前繼續尋找則按N鍵

也可以使用“?字串”尋找特定字串,它的使用與“/”相似,但它是向前尋找字串

 

5. vim的注意事項

由於Linux系統的vim編輯器是從UNIX下的vi發展而來的,而UNIX下的vi編輯器是從行編輯器ed發展而來的。因此,vim不如目前流行的微軟推出的同類編輯器易用、直觀,但是它的強大功能卻是微軟同類產品無法比擬的。因此一些人學習時可能會感到有一些不便和困惑。針對這類問題,這裡列出了使用vim中應注意的一些事項。當然要熟練使用vim,還需要平時操作中不斷地提高和積累。

●       插入編輯方式和命令方式切換時出現混亂

這種情況產生的原因通常是:還未輸入插入命令便開始進行文本輸入,從而無法在正確位置輸入文本;另外,當插入資訊後,還未按Esc鍵結束插入方式,就又輸入其他的命令資訊,從而使命令無法執行。

當出現這種情況時,首先要確定自己所處的操作方式,然後再確定下一步做什麼工作。若不易搞清楚當前所處的狀態,還可以使用Esc鍵退回到命令方式重新進行輸入。

●       在進行文檔編輯時,vim編輯器會產生混亂

這種狀態的產生往往是由於螢幕重新整理有誤,此時可以使用Ctrl+l鍵對螢幕進行重新整理,如果是在終端,可以用Ctrl+r進行螢幕重新整理。

●       對螢幕中顯示的資訊進行操作時,系統沒有反應。

出現這種情況可能是由於螢幕的多個進程被掛起(如不慎用了Ctrl+s鍵等),此時可用Ctrl+q進行解脫,然後重新進行輸入。

●       當編輯完成後,不能正確退出vim

出現這種情況的原因可能是系統出現了意外情況。如:檔案屬性為唯讀、使用者對編輯的檔案沒有寫的許可權。如果強行執行退出命令“:w!”仍無法退出,可以用“:w newfile”命令將檔案重新存檔後再退出,以減少工作中的損失,這個新檔案newfile應是使用者有寫入權限的檔案。

如果暫時沒有可以使用的檔案,可以借用/tmp目錄建一個新的檔案。因為Linux系統中的/tmp是一個臨時目錄,系統啟動時總要重新整理該目錄,因此作業系統一般情況下不對此目錄下進行保護。但當處理完成後,切記應將新檔案進行轉儲,否則依然會造成資訊損失。

●       在使用vim時,萬一發生了系統掉電或者突然當機的情況怎麼辦?

工作時發生了掉電和當機,對正做的工作無疑是一種損失,但是vim程式可使損失降到最小。因為,對vim的操作實際上是對編輯緩衝區的資料操作,而系統經常會將緩衝區的內容自動進行儲存。因此,當機後使用者可以在下次登陸系統後使用-r選項進入vi,將系統中最後儲存的內容恢複出來。例如,在編輯cd檔案的時候突然斷電或者系統崩潰後的恢複命令為:

[[email protected] david]$ vi cd -r

vim的學習應側重於實際的應用,在瞭解vim的使用規則後應該多上機操作,不斷積累經驗,逐步地使自己成為vi編輯能手。

Linux學習筆記之VI(VIM)編輯器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.