一纯丸、進(jìn)入vi的命令
vi filename :打開或新建文件挥唠,并將光標(biāo)置于第一行首
vi +n filename :打開文件涂炎,并將光標(biāo)置于第n行首
vi + filename :打開文件民褂,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開文件,并將光標(biāo)置于第一個(gè)與pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰诵棵,恢復(fù)filename
vi filename....filename :打開多個(gè)文件抠蚣,依次進(jìn)行編輯
二、移動(dòng)光標(biāo)類命令
h :光標(biāo)左移一個(gè)字符
l :光標(biāo)右移一個(gè)字符
space:光標(biāo)右移一個(gè)字符
Backspace:光標(biāo)左移一個(gè)字符
k或Ctrl+p:光標(biāo)上移一行
j或Ctrl+n :光標(biāo)下移一行
Enter :光標(biāo)下移一行
w或W :光標(biāo)右移一個(gè)字至字首
b或B :光標(biāo)左移一個(gè)字至字首
e或E :光標(biāo)右移一個(gè)字至字尾
) :光標(biāo)移至句尾
( :光標(biāo)移至句首
}:光標(biāo)移至段落開頭
{:光標(biāo)移至段落結(jié)尾
nG:光標(biāo)移至第n行首
n+:光標(biāo)下移n行
n-:光標(biāo)上移n行
n$:光標(biāo)移至第n行尾
H :光標(biāo)移至屏幕頂行
M :光標(biāo)移至屏幕中間行
L :光標(biāo)移至屏幕最后行
0:(注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
$:光標(biāo)移至當(dāng)前行尾
三履澳、屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b嘶窄;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部距贷。
四柄冲、插入文本類命令
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開一行
O:在當(dāng)前行之上新開一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開始忠蝗,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行现横,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
五、刪除命令
ndw或ndW:刪除光標(biāo)處開始及其后的n-1個(gè)字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個(gè)字符,x刪除光標(biāo)后的戒祠,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
六骇两、搜索及替換命令
/pattern:從光標(biāo)開始處向文件尾搜索pattern
?pattern:從光標(biāo)開始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換#### vim的翻頁
整頁翻頁 ctrl-f ctrl-b (f就是forword b就是backward)T
翻半頁ctrl-d ctlr-ud=down u=up
滾一行ctrl-e ctrl-y
zz 讓光標(biāo)所雜的行居屏幕中央zt 讓光標(biāo)所雜的行居屏幕最上一行 t=topzb 讓光標(biāo)所雜的行居屏幕最下一行 b=bottom
多行注釋:
- 進(jìn)入命令行模式,按ctrl + v進(jìn)入 visual block模式姜盈,然后按j, 或者k選中多行低千,把需要注釋的行標(biāo)記起來
- 按大寫字母I,再插入注釋符馏颂,例如//
- 按esc鍵就會(huì)全部注釋了
取消多行注釋:
- 進(jìn)入命令行模式示血,按ctrl + v進(jìn)入 visual block模式,按字母l橫向選中列的個(gè)數(shù)救拉,例如 // 需要選中2列
- 按字母j矾芙,或者k選中注釋符號(hào)
- 按d鍵就可全部取消注釋
- vim file
// 新建或打開file - i : 插入內(nèi)容
- dd : 刪除一行
- ECS : 回到正常模式
- :set : number顯示行號(hào)
- y行數(shù) : 復(fù)制幾行
- yy : 復(fù)制當(dāng)前行
- p : 粘貼
- u : 撤銷
- / #G : 跳到#行
刪除操作(命令模式使用)
x刪除光標(biāo)處的單個(gè)字符
dd刪除光標(biāo)所在行
dw刪除當(dāng)前字符到單詞尾包括空格的所有字符
、#x例如3x刪除光標(biāo)處向右的三個(gè)字符
近上、#dd例如3dd從當(dāng)前行開始向下刪除三行文本
撤銷操作
u命令取消最近一次的操作剔宪,可以使用多次來恢復(fù)原有的操作
U取消所有操作
Ctrl+R可以恢復(fù)對(duì)
復(fù)制操作
yy命令復(fù)制當(dāng)前整行的內(nèi)容到vi緩沖區(qū)
yw復(fù)制當(dāng)前光標(biāo)所在位置到單詞尾字符的內(nèi)容到vi緩存區(qū),相當(dāng)于復(fù)制一個(gè)單詞
y$復(fù)制光標(biāo)所在位置到行尾內(nèi)容到緩存區(qū)
y^復(fù)制光標(biāo)所在位置到行首內(nèi)容到緩存區(qū)壹无、#yy例如:5yy就是復(fù)制5行葱绒、#yw例如:2yw就是
vim 配置
g clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
分割布局
使用:sv <filename>命令打開一個(gè)文件,你可以縱向分割布局(新文件會(huì)在當(dāng)前文件下方界面打開)斗锭,使用相反的命令:vs <filename>地淀, 你可以得到橫向分割布局(新文件會(huì)在當(dāng)前文件右側(cè)界面打開)
記得在輸入完:sv
后,利用tab補(bǔ)全功能岖是,快速查找文件帮毁。
你還可以指定屏幕上可以進(jìn)行分割布局的區(qū)域,只要在.vimrc
文件中添加下面的代碼即可:
set splitbelow
set splitright
想要不使用鼠標(biāo)就切換分割布局嗎豺撑?只要將下面的代碼添加到.vimrc
文件中烈疚,你就可以通過快捷組合鍵進(jìn)行切換。
"split navigations
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
組合快捷鍵:
Ctrl-j 切換到下方的分割窗口
Ctrl-k 切換到上方的分割窗口
Ctrl-l 切換到右側(cè)的分割窗口
Ctrl-h 切換到左側(cè)的分割窗口
#### 緩沖區(qū)(Buffers)
雖然Vim支持tab操作聪轿,仍有很多人更喜歡緩沖區(qū)和分割布局爷肝。你可以把緩沖區(qū)想象成最近打開的一個(gè)文件。Vim提供了方便訪問近期緩沖區(qū)的方式陆错,只需要輸入:b <buffer name or number>灯抛,就可以切換到一個(gè)已經(jīng)開啟的緩沖區(qū)(此處也可使用自動(dòng)補(bǔ)全功能)。你還可以通過ls命令查看所有的緩沖區(qū)音瓷。
在:ls命令輸出的最后对嚼,Vim會(huì)提示“敲擊Enter繼續(xù)查看”,這時(shí)你可以直接輸入:b <buffer name>绳慎,立即選擇緩沖區(qū)纵竖。這樣可以省掉一個(gè)按鍵操作漠烧,也不必去記憶緩沖區(qū)的名字。
#### 代碼折疊(Code Folding)
大多數(shù)“現(xiàn)代”集成開發(fā)環(huán)境(IDE)都提供對(duì)方法(methods)或類(classes)進(jìn)行折疊的手段磨确,只顯示類或方法的定義部分沽甥,而不是全部的代碼声邦。
你可以在.vimrc
中添加下面的代碼開啟該功能:
" Enable folding
set foldmethod=indent
set foldlevel=99
這樣就可以實(shí)現(xiàn)乏奥,但是你必須手動(dòng)輸入za來折疊(和取消折疊)。使用空格鍵會(huì)是更好的選擇亥曹。所以在你的配置文件中加上這一行命令吧:
" Enable folding with the spacebar
nnoremap <space> za
現(xiàn)在你可以輕松地隱藏掉那些當(dāng)前工作時(shí)不需要關(guān)注的代碼了邓了。
#### E21: 不能修改,因?yàn)檫x項(xiàng) 'modifiable' 是關(guān)的
使用vi的時(shí)候不能編輯媳瞪,提示 “不能修改骗炉,因?yàn)檫x項(xiàng) "modifiable"是關(guān)的 ”,輸入命令 :set modifiable 回車就可以繼續(xù)編輯
文件命名
:w newfile #將編輯的內(nèi)容寫入 newfile 文件蛇受,保持原有文件的內(nèi)容不變
:f newfile #將當(dāng)前文件重命名為 newfile