vim是由vi發(fā)展來的一個強大的文本編輯器乎芳,代碼補完幽崩、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富苦始,在程序員中被廣泛使用。
vim比較難懂慌申,一開始接觸時陌选,進入去了都不知怎么退出,但是我么只要深入學(xué)習(xí)蹄溉,多應(yīng)用咨油,慢慢就會適應(yīng)它。下面介紹下它的一些簡單使用方法柒爵。
1.打開文件
vim +n 文件名
vim 文件名
n表示打開文件后讓光標(biāo)直接處于第n行役电。
2.vim三種基本模式
- 編輯模式,也叫命令模式棉胀,默認(rèn)打開文件時進入的就是這個模式法瑟,可以進行復(fù)制,刪除唁奢,替換等編輯操作霎挟。
- 輸入模式
- 末行模式 ,內(nèi)鍵命令行接口麻掸。
三種模式間之間切換
(1)編輯模式進入輸入模式酥夭,在編輯模式下按下下面字母鍵。
i:insert, 在光標(biāo)所在處輸入,常用
a: append熬北,在光標(biāo)所在處后方輸入
o:在光標(biāo)所在處的下方打開一個新行進行輸入疙描,常用
I:在光標(biāo)所在行的行首輸入
A:在光標(biāo)所在行的行尾輸入
O:在光標(biāo)所在處的上方打開一個新行進行輸入
(2)輸入模式進入編輯模式,按一下esc鍵
(3)編輯模式進入末行模式讶隐,按一下“:”鍵
(4)末行模式進入編輯模式起胰,按一下“esc”鍵
3.關(guān)閉文件##
ZZ 保存并退出
ZQ 無條件退出,不保存
:q 退出整份,沒進行任何編輯時
:q! 強制退出待错,不保存
:wq 保存并退出
:w /PATH/TO/SOMEFILE 把文件保存到其他目錄下
:r filename 在光標(biāo)后面讀入文件
:n1,n2 w filename 將n1到n2行間內(nèi)容保存到另一文件
4,.光標(biāo)跳轉(zhuǎn)##
字符間跳轉(zhuǎn)
h 左
j 下
k 上
l 右
也可以h,j烈评,k火俄,l 前加數(shù)字,跳轉(zhuǎn)到指定的個數(shù)字符讲冠。例如:5h表示向左移動5 個字符瓜客,5k表示光標(biāo)同一位置向上移動5行
單詞間跳轉(zhuǎn)
w 光標(biāo)跳到下一單詞的詞首
e 光標(biāo)跳到當(dāng)前或后一個單詞的詞尾
b 跳到當(dāng)前或當(dāng)前單詞的詞首
還可以在前面加數(shù)字進行指定個數(shù)單詞跳轉(zhuǎn),例如5w,往前跳5個單詞到詞首
行首行尾跳轉(zhuǎn)
0 數(shù)字0竿开,跳轉(zhuǎn)到行首
^ 跳到行首的第一個非空白字符
$ 跳到行尾
行間跳轉(zhuǎn)
G 跳到最后一行
1G,gg:跳到第一行
nG:跳到指定的n行谱仪。例如10G,是跳到第十行
n<Enter> :光標(biāo)向下移動n行
*句間和段間跳轉(zhuǎn)
句間跳轉(zhuǎn)否彩,用小括號:)和(疯攒。
段間跳轉(zhuǎn),用大括號 ‘{’ 和‘}’ 列荔。
5.翻屏操作
ctrl+f 向文件尾部翻一屏
ctrl+b向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
回車鍵enter:按行往后翻
vim常用的編輯命令
1.字符編輯
x: 刪除光標(biāo)所在的字符
[n]x:刪除刪除光標(biāo)開始指定的往后n個字符敬尺,例如,vim這個單詞贴浙,假如光標(biāo)在字符v處砂吞,編輯模式下輸入3x,刪除vim.。
xp: 交換光標(biāo)所在字符與其后面的字符的位置崎溃,例如蜻直,要是光標(biāo)在單詞vi的v上面,編輯模式下輸入xp袁串,則他們的位置會改為iv概而。
2.替換命令
r:替換光標(biāo)所在處的單個字符,編輯模式下輸入一次r后囱修,再輸入想要替換為的字符即可到腥。
3.刪除命令
dd 刪除當(dāng)前行
ndd:刪除光標(biāo)所在向下n行。例如10dd,刪除20行
x:刪除光標(biāo)后面一個字符
X:刪除光標(biāo)前面一個字符
nx:n為數(shù)字蔚袍,刪除光標(biāo)后面連續(xù)n個字符,例如10x。連續(xù)刪除10個字符
d0 刪除從當(dāng)前光標(biāo)開始到行末的內(nèi)容
d$ 刪除從當(dāng)前光標(biāo)開始到行末的內(nèi)容
cw/cW 刪除當(dāng)前單詞從光標(biāo)開始的部分并進入插入模式
cb/cB 刪除當(dāng)前單詞從光標(biāo)所在位置至單詞開始的部分并進入插入模式
dw/dW 刪除當(dāng)前單詞從光標(biāo)開始的部分但不進入插入模式
db/dB 刪除當(dāng)前單詞從光標(biāo)所在位置至單詞開始的部分但不進入插入模式
cc:刪除當(dāng)前行并進入插入模式
d} 刪除當(dāng)前段落從光標(biāo)位置開始到段末的內(nèi)容
d{ 刪除當(dāng)前段落從光標(biāo)位置開始到段首的內(nèi)容
d) 刪除當(dāng)前句子從光標(biāo)位置開始到句末的內(nèi)容
d( 刪除當(dāng)前句子從光標(biāo)位置開始到句首的內(nèi)容
4.復(fù)制命令
yw 復(fù)制當(dāng)前單詞從光標(biāo)開始的部分
yy 復(fù)制光標(biāo)所在行的所有字符
nyy:復(fù)制光標(biāo)開始往后n行啤咽,例如5yy晋辆,復(fù)制5行
y$復(fù)制光標(biāo)開始到行尾字符
y^復(fù)制光標(biāo)開始到行首字符
y0復(fù)制光標(biāo)所在行行首到光標(biāo)位置字符
5.粘貼命令 p
p:為已經(jīng)復(fù)制好的內(nèi)容粘貼在光標(biāo)所在行下方進行粘貼,例如光標(biāo)要是在第20行宇整,復(fù)制的內(nèi)容將會粘貼在第20行之后瓶佳。
P(大寫):為已經(jīng)復(fù)制好的內(nèi)容粘貼在光標(biāo)所在行上方進行粘貼,例如光標(biāo)要是在第20行鳞青,復(fù)制的內(nèi)容將會粘貼在第20行之前霸饲。
6.撤消與重做
u 撤消更改
Ctrl-R 重做更改
“.”重復(fù)執(zhí)行上一個操作
7.改變命令c,刪除后進入編輯模式
cc刪除整行所有字符串,但不會刪除該行臂拓,進入編輯模式
8.大小寫轉(zhuǎn)換
~ 將光標(biāo)下的字母大小寫反向轉(zhuǎn)換
guw 將光標(biāo)所在的單詞變?yōu)樾?br>
guw 將光標(biāo)所在的單詞變?yōu)樾?br>
gUw 將光標(biāo)所在的單詞變?yōu)榇髮?br>
guu 光標(biāo)所在的行所有字符變?yōu)樾?br>
gUU 光標(biāo)所在的行所有字符變?yōu)榇髮?br>
g~~ 光標(biāo)所在的行所有字符大小寫反向轉(zhuǎn)換
vim末行模式厚脉,編輯模式下按“:”進入
1.地址定界
: n 光標(biāo)轉(zhuǎn)到第n行,例如5胶惰,轉(zhuǎn)到第五行
$ :到最后一行
n1,n2 :指定行范圍傻工,n1為起始行,n2為結(jié)束行
% :全文
一般配合d,y,c命令使用孵滞,例如1,10d刪除1到10行
w :/PATH/TO/SOMEFILE:將范圍內(nèi)的文本保存至指定的文件中.例如 10,20 w /tmp/1020.txt ,將10到20行保存到tmp目錄下的1020.txt文件中
2.查找與替換
/abc :從光標(biāo)開始向文件尾部開始查找所有為abc字符串
中捆?abc :從光標(biāo)開始向文件首部開始查找所有為abc字符串
n 重復(fù)前一個搜索動作,搜索下一個 ,和命令方向相同
N 反向搜索下一個坊饶,和命令方向相反
- :在文件中向前搜索當(dāng)前光標(biāo)所在的單詞
“#” :在文件中向后搜索當(dāng)前光標(biāo)所在的單詞
- 查找與替換格式分隔符:s/.../.../ ,s@@@,s###,三種后面加g是全局查找意思泄伪,例如
s###g。 - :n1,n2s#word1#word2#g n1,n2為數(shù)字匿级。意思是在n1,n2
行之間查找word1這個字符串并替換為word2蟋滴,例如:100,200s#for#FOR#g,在100到200行之間查找for這單詞,替換為大寫FOR根蟹。 - :1,$s#word1#word2#g 意思是在第1行到最后一行查找word1這個字符串并替換為word2脓杉。
- :1,$s#word1#word2#gc 在第1行到最后一行查找word1這個字符串并替換為word2。在替換前提示用戶是否進行取代简逮。
末行模式查找支持正則表達式
例如:
1球散、復(fù)制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#
:1,$s@^[[:space:]]@#@g
2.復(fù)制/boot/grub/grub.conf文件至/tmp目錄中散庶,刪除/tmp/grub.conf文件中的行首的空白字符
:%s@^[[:space:]]+@@g
3.刪除/tmp/rc.sysinit文件中的以#開頭蕉堰,且后面跟至少一個空白字符的行行的#和空白字符
:%s@^#[[:space:]]+@@gc
4.為/tmp/grub.conf文件中的前三行的行首加#號
:1,3s@^#@##@g
5.將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0最后的0改為1
:%s#\(enabled\|gpgcheck\)=0#\1=1#g
vim可視化
可視化是為了便于選擇文本,vim引入的一種模式
在編輯模式下按下面的字母:
v 進入字符選擇可視化模式悲龟,光標(biāo)經(jīng)過的地方會反白選擇
V 進入行可視化模式,光標(biāo)經(jīng)過的行會反白選擇
Ctrl+v 進入?yún)^(qū)塊可視化模式屋讶,可以用長方形的方式選擇字符。
在可視化模式選擇后可以按须教,y,d,進行復(fù)制和刪除操作
vim多文件編輯功能
1.打開多文件 vim file1 file2 .......
選項:-o 水平分割窗口
-O:垂直分割窗口
2.文件間切換 和退出
:next切到下一個文件
:prev切到上一個文件
:first切到第一個文件
:last 切到最后一個文件
:wqall所有文件保存并退出
:wall保存所有文件
:qall退出所有文件
3.窗口之間切換
按下ctrl+w組合鍵皿渗,然后按箭頭鍵進行切換
單文件窗口下再進行窗口分割:
按下ctrl+w組合鍵斩芭,然后按s:水平分割窗口
按下ctrl+w組合鍵,然后按v:垂直分割窗口
vim定制
1乐疆、行號
顯示:set number, 簡寫為set nu
取消顯示:set nomber, set nonu
2划乖、括號匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、自動縮進
啟用:set ai
禁用:set noai
4挤土、高亮搜索
啟用:set hlsearch
禁用:set nohlsearch
:noh 取消搜索后結(jié)果的高亮顯示
5琴庵、語法高亮
啟用:syntax on
禁用:syntax off
6、忽略字符大小寫
啟用:set ic
禁用:set noic
7.設(shè)置tab鍵縮進4個字符仰美;set tabstop=4
8.set autoindent 設(shè)置自動縮進
- set shiftwidth=4 表示每一級縮進的長度為4個空格
注意:在末行模式下的設(shè)定迷殿,僅對當(dāng)前vim進程有效。
要永久有效:修改全局配置文件:/etc/vimrc