歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 【Linux入門學習之】vi/vim編輯器必知必會

【Linux入門學習之】vi/vim編輯器必知必會

日期:2017/2/28 14:45:14   编辑:Linux教程

一、我們為什麼要學習vim編輯器?

Linux的命令行界面下面有非常多的文本編輯器。比如經常聽說的就有Emacs、pico、nano、joe與vim等。vim可以看做是vi的高級版。我們為什麼一定要學習vim呢?有以下幾個原因:

(1)所有的Unix like系統都會內置vi文本編輯器,其他的文本編輯器則不一定會存在。

(2)很多軟件的編輯接口都會主動調用vi。

(3)vim具有程序編輯的能力,可以主動以字體顏色辨別語法的正確性,方便程序設計。

(4)程序簡單,編輯速度快。

相關閱讀:

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

在CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

Vim 7.4a 發布,全新更快的正則表達式引擎 http://www.linuxidc.com/Linux/2013-07/87035.htm

CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C語言設置 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設置Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

二、下面先介紹一下vi的基本使用方法及其相關命令。

vim編輯器的三種模式:一般模式、編輯模式和命令行模式。

在一般模式中可以進行刪除、復制和粘貼的功能,但是無法編輯文件內容。從一般模式切換到編輯模式可以按下i、I、o、O、a、A、r、R鍵。按下Esc鍵可以回到一般模式。在一般模式中輸入:、/、?三個中的任意一個可以將光標移到最下面的一行。在這個模式中可以提供查找數據的操作,而讀取、保存、大量替換字符、離開vii、顯示行號等操作則是在此模式中完成的。需要注意的是,編輯模式與命令行模式之間是不能互相切換的。

下面列出平時用的最多的vi命令:

移動光標的方法:

[Ctrl]+[f]:屏幕向下移動一頁,相當於[PageDown]按鍵。

[Ctrl]+[b]:屏幕向上移動一頁,相當於[PageUp]按鍵。

0或功能鍵[Home]:移動到這一行的最前面字符處。

$或功能鍵[End]:移動到這一行的最後面字符處。

G:移動到這個文件的最後一行。

gg:移動到這個文件的第一行,相當於1G.

N[Enter]:N為數字,光標向下移動N行。

查找和替換:

/word:向下尋找一個名稱為word的字符串。

?word:向上尋找一個名稱為word的字符串。

:n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個字符串,並且將其替換為word2.

:1,$s/word1/word2/g:從第一行到最後一行尋找word1這個字符串,並且將其替換為word2.

:1,$s/word1/word2/gc:從第一行到最後一行尋找word1這個字符串,並且將其替換為word2.且在替換前顯示提示字符給用戶確認是否需要替換。

刪除、復制和粘貼:

x,X:在一行字中,x為向後���除一個字符(相當於[Del]鍵),X為向前刪除一個字符(相當於[Backspace])。

dd:刪除光標所在的一整行。

ndd:刪除光標所在的向下n行。

yy:復制光標所在的一行。

nyy:復制光標所在的向下n行。

p,P:p為將已復制的內容在光標的下一行粘貼,P則為粘貼在光標的上一行。

u:復原前一個操作。

[Ctrl]+r:重做上一個操作。

.:小數點,重復前一個操作。

一般模式切換到編輯模式:

i,I:進入插入模式,i為從目前光標所在處插入。I為在目前所在行的第一個非空格字符處開始插入。

a,A:進入插入模式。a為從目前光標所在處的下一個字符處開始插入。A為從所在行的最後一個字符處開始插入。

o,O:進入插入模式。o為在下一行插入。O為在上一行插入。

r,R:進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵。

一般模式切換到命令行:

:w:將編輯的數據寫入到硬盤中。

:q:離開vi.後面加!為強制離開。

:wq:保存後離開。:wq!為強制保存後離開。

目前主要的編輯器都有恢復功能,vim也不例外。vim是通過“保存”文件來挽回數據的。

每當我們在用vim編輯時,vim都會自動在被編輯的文件的目錄下面再新建一個名為filename.swap的文件。這就是一個暫存文件,我們對文件filename所做的操作都會被記錄到這個文件當中。如果系統意外崩潰,導致文件沒有正常保存,那麼這個暫存文件就會發揮作用。下面用一個例子來說明(Note:我用的是Ubuntu)。

打開終端,輸入命令,將etc目錄下面的manpath.config復制到tmp目錄下面,並且更改當前工作目錄為tmp:

cp /etc/manpath.config /tmp

cd /tmp

用vim編輯manpath.config文件:vim manpath.config。

我們在vim的一般模式下按下Ctrl+z組合鍵,vim就會被丟到後台執行。回到命令提示符環境後,我們模擬將vim的工作不正常中斷。

kill -9 %1;強制殺死制定的進程。

這樣導致暫存盤無法通過正常的流程結束,所以暫存文件不會消失,而是繼續保留下來。當再次編輯那個文件時(輸入命令vim manpath.config),出現(ubuntu 11.10):

這時,有六個按鈕可以使用:

O(pen for Read-Only):打開成只讀文件。

E(dit):用正常方式打開要編輯的文件,並不會載入暫存文件的內容。這很容易出現兩個用戶相互改變對方的文件的問題。

R(ecover):加載暫存文件的內容。

D(elete):如果你確定這個暫存文件是沒有用的,則可以刪除。

Q(uit):不進行任何操作,回到命令行。

A(bort):忽略這個編輯行為,和Q類似。

需要注意的是:這個暫存文件不會應為你結束vim後自動刪除,必須要手動刪除。否則每次打開對應的文件時都會出現這樣的提示。

Copyright © Linux教程網 All Rights Reserved