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

Linux系統 vi/vim文本編輯器

col class 附加 是什麽 style 作用 作文 進行 map

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後,按空格或者回車即可替換

技術分享圖片

Linux系統 vi/vim文本編輯器