1. 程式人生 > >Linux系統 vi/vim文字編輯器

Linux系統 vi/vim文字編輯器

Linux系統 vi/vim文字編輯器

(一)Vim/Vi簡介

(二)Vim/Vi工作模式

(三)Vim/Vi基本使用

(四)Vim/Vi應用技巧

 

 

(一)Vim/Vi簡介

  Vim/Vi是一個功能強大的全螢幕文字編輯器,是Linux/UNIX上最常用的文字編輯器,它的作用是建立、編輯、顯示文字檔案。
vim或者vi文字編輯是Linux下最常用的編輯器。vi 和vim 編輯器的區別是vim是vi的改進版本,在vi 編輯器的基礎上上擴充套件了很多實用的功能。 大多數的linux/unix 發行版本中都使用 vim 代替了原來的 vi 文字編輯器。 如果是centos或者redhat系統,當系統安裝完畢後,vi/vim 文字編輯器預設情況下就已經被安裝了。如果是debian/ubuntu系統下,預設情況下,vim編輯器是不會被安裝的。你需要在ubuntu系統下手動安裝vim編輯。
  vi/vim文字編輯器是我們在linux系統下工作可以說是必須會使用的一個工具,因為linux系統的設計理念是一切皆檔案,也就是說,你在linux裡的任何操作都是對檔案的操作,所以會經常去操作檔案,更改檔案,儲存檔案,退出並儲存檔案。

 

 

(二)Vim/Vi工作模式

三種模式:

命令模式

插入模式

末行模式

 

 

三者模式的區別是什麼呢?

命令模式:vi/vim 編輯器進入後的預設模式,從命令模式可以切換到插入和末行模式,如果當你進入另外的兩種模式後,可以使用“ESC”鍵退回到命令模式,在命令模式下,可以輸入一些文字編輯器特有的命令,比如說你想編輯檔案,那麼就需要輸入“i”,讓當前模式變為插入模式或者輸入模式,這樣你就可以編輯這個文字了。

 

插入模式:顧名思義就是要對本文做輸入的操作,也就是說可以對檔案做出更改操作。否則,你在命令模式下,vi/vim 文字編輯器是隻讀模式,你無法對文字做出更改。

 

末行模式:是命令模式下輸入”:”,當你在輸入模式下,對檔案做了更改,那麼需要先退回到命令命令,再進入末行模式,並輸入”wq”後,即可儲存並退出 vi/vim 文字編輯器。如果想不儲存退出 vi/vim 文字編輯器,那麼直接輸入”q!”,即可。

 

 

(三)Vim/Vi基本使用

(1)進入vi/vim文字編輯器的命令

vi filename:開啟或新建檔案,並將游標置於第一行行首的位置
vi +n filename: 開啟檔案,並將游標置於第n行的位置
vi + filename: 開啟檔案,並將游標置於最後一行的位置
vi +/pattern filename: 開啟檔案,並將游標置於第一個與pattern匹配的行首
vi -r filename: 在上次徵用vim 文字編輯器的時候發生系統奔潰後,恢復filename 檔案
vi filename1…filenamen: linux vi/vim 文字編輯器可以通過開啟多個檔案,依次進行編輯

  

(2) Linux vi/vim 文字編輯器插入文字類命令

命令           作用
a		在游標後附加文字
A		在本行行末附加文字
i		在游標前插入文字
I		在本行開始插入文字
o		在游標下插入新行
O		在游標上插入新行

  

(3) linux vi/vim 文字編輯器下移動游標的命令

 

命令 		作用
h		左移一個字元
j		下移一行
k		上移一行
l		下移一個字元
$		移到行尾
0		移到行首
H		移至螢幕上端
M		移至螢幕中央
L		移至螢幕下端

  


補充:

:set nu         設定行號
:set nonu     取消行號
gg        到第一行
G            到最後一行
nG          到第n行
:n            到第n行

  

(4)Linux vi/vim 文字編輯下刪除命令

命令		作用
x		刪除游標所在處字元
nx		刪除游標所在處後n個字元
dd		刪除游標所在行
ndd		刪除游標往下n行
dG 		刪除游標所在行末尾的內容
D		刪除從游標所在處到行尾
:n1,n2d	刪除指定範圍的行

  

(5 Linux vi/vim 文字編輯器搜尋及替換命令

命令		  作用
/string		  向前搜尋指定字串 開啟搜尋時忽略大小寫 :set ic  關閉搜尋時忽略大小寫 :set noic  
n		  搜尋指定字串的下一個出現位置
:%s/old/new/g	  全文替換指定字串
:n1,n2s/old/new/g 在一定範圍內替換指定字串,後面g意思是在替換時是否確認,c為沒有提示
r		  取代游標所在處字元
R		  從游標所在處開始替換字元,按Esc結束
u		  取消上一步操作

  

(6) Linux vi/vim 文字編輯器拷貝和貼上命令

命令		作用
yy、Y		複製當前行
nyy、nY		複製當前行以下n行
dd		剪切當前行
ndd		剪切當前行以下n行
p、P		貼上在當前游標所在行下或行上

  

(7) Linux vi/vim 編輯器儲存和退出命令

命令		作用
:w		儲存修改
:w new_filename	另存為指定檔案
:wq		儲存修改並退出
ZZ		快捷鍵,儲存修改並退出
:q!		不儲存修改退出
:wq!		儲存修改並退出(檔案所有者可忽略檔案的只讀屬性)

注意:對檔案可以強行儲存退出的只可能是檔案所有者或者是root使用者

  

 

(四)Vim/Vi應用技巧

 

 

(1)
在Vi中執行命令:![命令]

我這裡執行:!date

 

 我們可以看到在末行模式裡,可以執行系統命令,執行完以後也可以繼續回到vi/vim編輯器介面

命令格式:

:![命令]

注意:一定要在末行模式才能使用

 

 

 

(2)

匯入檔案:r 檔名

 這個功能就是可以匯入別的文字的內容到現在編輯的文字上。

我們現在將/newdir1/newdir1的內容匯入到/newdir/newdir中

注意:現在/newdir/newdir為空文字

 

 

 

 

 

 補充:

剛才我們知道可以在末行模式執行系統命令,然後又回到vi/vim編輯器,如果我們想把執行命令的結果匯入到文字中,應該怎麼辦,既然知道可以匯入文字,那也可以匯入命令執行的結果。

在Vi中匯入執行命令的結果:r !date

 

 

 (3)

定義快捷鍵:map 快捷鍵 觸發命令

在linux中使用 ^符號

ctrl+v,後ctrl+[符號]

 

範例:
:map ^P I#<ESC>

這裡我以下面舉例, 0是游標移到行首,x是刪除游標所在位置的字元
:map ^B 0x

 

我按一下ctrl+b就刪除了第二行的#符

 

 

 

取消快捷鍵:

:unmap ^p 取消快捷鍵

 

 

 

 (4)

連續行註釋
:n1,n2s/^/#/g
:n1,n2s/^#//g
:n1,n2s/^/\/\//g

 

我們以:n1,n2s/^/#/g來解釋,n1到n2行的行首都加上#。

下面是:4,8s/^/#/g

在4到8行行首加上#

 

 

 

 

 

(5)

替換快捷鍵

意思很明顯,就是一個字元或字串替換另一個字元或者字串。

格式:

ab [被替換的內容]  [替換的內容]

 

例子:

定義ab替換快捷鍵:ab mymail [email protected]
取消ab替換的定義:unab mymail

 

 

 

 

 輸入mymail後,按空格或者回車即可替換