標籤:
vim是一個功能強大的全螢幕文字編輯器,是Linux/Unix最常用的文字編輯器,其作用是建立、編輯、顯示文字檔。vim的特點是沒有菜單,只有命令。
vim主要有三種工作模式,分別為命令模式、插入模式、編輯模式。三者的關係可由來表示:
1 vim常用操作(1)插入命令
命令 |
作用 |
a |
在游標所在字元後插入 |
A |
在游標所在行尾插入 |
i |
在游標所在字元前插入 |
I |
在游標所在行首插入 |
o |
在游標下插入新行 |
O |
在游標上插入新行 |
(2)定位命令
命令 |
作用 |
:set nu |
設定行號 |
:set nonu |
取消行號 |
gg |
到第一行 |
G |
到最後一行 |
nG |
到第n行 |
:n |
到第n行 |
$ |
移至行尾 |
0 |
移至行首 |
(3)刪除命令
命令 |
作用 |
x |
刪除游標所在處字元 |
nx |
刪除游標所在處後n個字元 |
dd |
刪除游標所在行 |
dG |
刪除游標所在行到檔案末尾內容 |
ndd |
刪除游標所在行後n行(包括當前行) |
D |
刪除游標所在處到行尾內容 |
:n1,n2d |
刪除指定範圍行 |
(4)複製和剪下命令
命令 |
作用 |
yy |
複製當前行 |
nyy |
複製當前行以下n行(包括當前行) |
dd |
剪下當前行 |
ndd |
剪下當前行以下n行(包括當前行) |
p,P |
粘貼在當前游標所在行下或行上 |
(5)替換和取消命令
命令 |
作用 |
r |
取代游標所在處字元 |
R |
從游標所在處開始替換字元,按ESC結束 |
u |
取消上一步操作 |
(6)搜尋和搜尋替換命令
命令 |
作用 |
/string |
搜尋指定字串,搜尋時忽略大小寫:set ic,取消忽略:set noic |
n |
搜尋指定字串的下一個出現位置 |
:%s/old/new/g |
全文替換指定字串 |
:n1,n2s/old/new/g |
在一定範圍內替換指定字串 |
其中g表示不詢問確認,如果是c的話表示詢問確認
(7)儲存和退出命令
命令 |
作用 |
:w |
儲存修改 |
:w new_filename |
另存新檔指定檔案 |
:wq |
儲存修改並退出 |
ZZ |
快速鍵,儲存修改並退出 |
:q! |
不儲存修改並退出 |
:wq! |
儲存修改並退出(檔案所有者和root可使用) |
2. vim的提示
(1)將一個檔案的內容匯入到文字檔中,其格式為:
:r 檔案名稱
例:建立test文本,寫入如下內容,將/etc/issue的內容複寫到test文本中
[[email protected] ~]# vi testI am ws.What‘s your name?My name is LiMingI am glad to see you.
在最後一行的下一行插入issue的內容,在命令模式下輸入:r /etc/issue,可得:
I am ws.What‘s your name?My name is LiMingI am glad to see you!CentOS release 6.5 (Final)Kernel \r on an \m
(2)在不退出vim的情況下,執行相應的操作命令,其格式為:
:!命令
例:如在命令模式下執行ls命令
I am glad to see you!CentOS release 6.5 (Final)Kernel \r on an \m :!ls[No write since last change]anaconda-ks.cfg install.log install.log.syslog
(3)匯入命令執行結果,相當於將前兩者進行綜合,其格式為:
:r !命令
例:在test的文本末尾添加日期,在命令模式下輸入:r !date,其結果為:
I am ws.What‘s your name?My name is LiMingI am glad to see you!CentOS release 6.5 (Final)Kernel \r on an \mFri Jan 2 06:00:55 CST 2015
(4)定義快速鍵
可以為常用的命令定義快速鍵,其格式為:
map 快速鍵 觸發命令
註:快速鍵的建立需要同步選取Ctrl+v+建立快速鍵的字母
例1:建立一個快速鍵,可使在行首加入注釋符#,只需在命令模式下輸入:map ^P I#<ESC>,其中^P為Ctrl+v+p同步選取後的顯示,I#即為行首插入注釋符#,<ESC>表示退出編輯模式到命令模式。
然後在第一行執行Ctrl+p,即可得到如下結果:
#I am ws.What‘s your name?My name is LiMingI am glad to see you!CentOS release 6.5 (Final)Kernel \r on an \mFri Jan 2 06:00:55 CST 2015
例2:建立刪除行首注釋符#的快速鍵,在命令模式下輸入:map ^B 0x。
例3:在當前游標下為郵箱建立快速鍵,在命令模式下輸入如下命令:
:map ^H [email protected]
(5)連續注釋行,該命令與搜尋替換命令1.(6)類似。如在連續多行添加註釋符#,在命令模式下輸入如下命令:
:n1,n2s/^/#/g
其中^表示行首
相對的,取消連續行注釋可以在命令模式下輸入如下命令:
:n1,n2s/^#//g
如果以"//"表示注釋符的話,則連續注釋行可在命令模式下輸入如下命令:
:n1,n2s/^/\/\//g
其中"\"表示逸出字元。
例:在test文本中的前兩行加入//注釋符:
//I am ws.//What‘s your name?My name is LiMingI am glad to see you!CentOS release 6.5 (Final)Kernel \r on an \mFri Jan 2 06:00:55 CST 2015
(6)替換
在文字檔中,可以將一個字串替換為另一個字串,如將mail替換為[email protected],其命令格式為:
:ab mail [email protected]
然後在文本中寫入mail,按空格或Enter鍵則mail自動替換為[email protected]。
通常設定的快速鍵或替換在系統重啟時會消失,如果想長時間的儲存快速鍵的定義或替換等,可以在每個使用者的家目錄(如root在/root,使用者在/home/使用者)下寫入設定檔.vimrc(root下如/root/.vimrc),然後在該設定檔中編輯模式下寫入所需要的命令,且行首無需加冒號(:)。
Linux學習筆記(10)文字編輯器vim