linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim
編輯器之神-vim的使用,編輯器神-vim
vim即vi的升級(jí)版;在linux中,vi是vim的軟鏈接,我們敲vi和vim出來(lái)的都是vim;
純手打,如有錯(cuò)誤,敬請(qǐng)指出。
vi的三種模式及簡(jiǎn)單使用
vi三種模式
命令模式(默認(rèn)):是文件的入口,可以實(shí)現(xiàn)文件的定位,復(fù)制,翻頁(yè)等;
末行模式:是文件的出口,w write,q quit,wq 寫入并保存等;
編輯模式:正常的文字編輯;
三種模式的轉(zhuǎn)換
命令模式—>i,a,o,I,A,O—>編輯模式—>esc—>命令模式
命令模式—>”:”—>末行模式—>esc—>命令模式
vi的簡(jiǎn)單使用
vi 已有文件:打開(kāi)已存在的文件;
vi 不存在文件:新建文件;
vi 文件:打開(kāi)文件,光標(biāo)在行首;
vi 文件 +:打開(kāi)文件,文件在末尾;
vi 文件 +行數(shù):打開(kāi)文件,并且指定行數(shù);
例如:
vi hello.py #打開(kāi)hello文件
vi hello.py +20 #打開(kāi)hello文件并且把光標(biāo)跳到第20行
vi hello.py + #打開(kāi)hello文件并且光標(biāo)跳到最后一行
異常處理之交換文件
如果我們?cè)趘i編輯文件時(shí),忽然關(guān)閉終端,或者異常卡出,就會(huì)出現(xiàn)交換文件,用ls -al可查看,存在.swp結(jié)尾的交換文件;
出現(xiàn)交換文件后,再一次vi 原來(lái)的文件時(shí),就會(huì)報(bào)錯(cuò),我們按照提示D刪除交換文件即可;
命令模式轉(zhuǎn)編輯模式
命令模式下:
i
插入光標(biāo)前一個(gè)字符
I
插入行首
a
插入光標(biāo)后一個(gè)字符
A
插入行末
o
向下新開(kāi)一行,插入行首
O
向上新開(kāi)一行,插入行首
保存退出編輯
在命令模式下保存,shift+z+z
末行模式下:
w
保存
q
退出
wq
保存退出
x
保存退出
q!
不保存強(qiáng)制退出
vim移動(dòng),跳轉(zhuǎn)
上下左右移動(dòng)
命令模式:
k
上移
j
下移
h
左移
l
右移
hjkl控制上下作用
行內(nèi)移動(dòng)
命令模式下:
0:到達(dá)行首
^:到達(dá)行首第一個(gè)不是空白字符的位置
$:到達(dá)行尾
w:word,往后移一個(gè)word
b:back,往前移一個(gè)word
行數(shù)移動(dòng)
命令模式下:
gg:快速移動(dòng)到文件的第一行
G:快速移動(dòng)到文件最后一行
num gg:快速跳轉(zhuǎn)到指定行
num G:快速跳轉(zhuǎn)到指定行
末行模式下:
:num 回車:在末行模式下跳轉(zhuǎn)到指定行
其中用的最多的還是num G
上下翻頁(yè)
Ctrl+b:向上翻一頁(yè)
Ctrl+f:向下翻一頁(yè)
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
H:跳轉(zhuǎn)到屏幕頂部
M:跳轉(zhuǎn)到屏幕中間
L:跳轉(zhuǎn)到屏幕底部
注意HML跳轉(zhuǎn)的是屏幕,不是文件
其他跳轉(zhuǎn)
{: 按段移動(dòng),上移
}: 按段移動(dòng),下移
%:移到括號(hào)的左右邊
復(fù)制,粘貼,刪除(剪切)
復(fù)制粘貼
命令模式下:
y:和移動(dòng)命令一起使用,復(fù)制
yy:復(fù)制一行,支持nyy復(fù)制多行
p 粘貼
刪除(剪切)
命令模式下:
x: 刪除光標(biāo)后一個(gè)字符,相當(dāng)于 Del
X: 刪除光標(biāo)前一個(gè)字符,相當(dāng)于 Backspace
dd: 剪切光標(biāo)所在行,n dd 刪除指定的行數(shù)
d:和移動(dòng)命令配合使用,刪除移動(dòng)命令對(duì)應(yīng)的內(nèi)容;
D: 刪除光標(biāo)后本行所有內(nèi)容,包含光標(biāo)所在字符;
d0: 刪除光標(biāo)前本行所有內(nèi)容,不包含光標(biāo)所在字符;
dw: 將光標(biāo)移到單詞首字母,再dw,可刪除單詞
練習(xí):
5x:刪除光標(biāo)及往后五個(gè)字符
v+%+x:刪除選中的括號(hào)內(nèi)的內(nèi)容
d+6+G:把光標(biāo)所在行和第六行之間的內(nèi)容全部刪除,所在行能大于6也能小于6
y+{ +n+G+p:復(fù)制從光標(biāo)往后的一段內(nèi)容,并跳到指定行進(jìn)行粘貼
yy空行+5+p:復(fù)制空行,并且粘貼5個(gè)空行
復(fù)制刪除總結(jié)和擴(kuò)展
d和x在vi中看起來(lái)是刪除操作,但本質(zhì)上其實(shí)是剪切操作,剪切后會(huì)將內(nèi)容存放在和剪切板功能相同的緩沖區(qū);
同樣,復(fù)制其實(shí)也是將內(nèi)容放在緩沖區(qū);
注意,在其他圖形界面復(fù)制的內(nèi)容在vi中不能直接通過(guò)p進(jìn)行粘貼,需要右鍵粘貼,因?yàn)榧羟邪搴途彌_區(qū)不是同一個(gè);
可視模式(選中文本)
在命令模式下,
v,可視模式,從光標(biāo)選中位置,開(kāi)始向上向下選中文本,選中的位置,是原來(lái)光標(biāo)的位置;
V,可視行模式,從光標(biāo)選中行開(kāi)始,向上或向下選中光標(biāo)所經(jīng)過(guò)的每一行;
Ctrl+v,可視塊模式,垂直方向選中文本,和sublime的ctrl很像,具體可自己實(shí)驗(yàn);
可視模式可以配合 d, y, >>, << 實(shí)現(xiàn)對(duì)文本塊的刪除,復(fù)制,左右移動(dòng)
可視模式還可以和段落移動(dòng)等結(jié)合使用,例如:
V+G,表示選中從當(dāng)前行一直到末行
V+gg,表示選中從當(dāng)前行到文件首行,
V+{,
V+},
v+%,括號(hào)等等。
替換和查找
小幅替換
命令模式下:
r:將光標(biāo)下的字符進(jìn)行替換;例如,r+H:將那個(gè)光標(biāo)下的字符替換成H
R: 替換當(dāng)前行光標(biāo)后的字符;例如,hello單詞首字母,R+world:將hello單詞替換成world;
全局替換
末行模式下,
固定格式:%s///g
格式:%s/舊文本/新文本/g
例如:
把python全部替換成world:%s/python/world/g
將第一行至第10行之間的abc替換成123:1, 10s/abc/123/g
可視區(qū)域替換
先用可視模式選中要替換的范圍,再進(jìn)入末行模式進(jìn)行替換
格式:s/舊文本/新文本/g
V+向下移動(dòng)光標(biāo)到第11行+:進(jìn)入末行模式+s/world/python/g:將當(dāng)前行到第11行的所有world替換成python
確認(rèn)替換
格式:%s/舊文本/新文本/gc
會(huì)查找出全部的舊文本,然后逐個(gè)的讓你來(lái)確認(rèn)是否替換,替換y,不替換n,替換所有a,不想替換了就q
查找
命令模式下:
/+str:查找指定字符串
n:查找下一個(gè)被高亮的字符串
N:查找上一個(gè)被高亮的字符串
單詞快速匹配:
*:向后查找當(dāng)前光標(biāo)所在單詞
#:向前查找當(dāng)前光標(biāo)所在單詞
不想高亮,可以查找一個(gè)不存在的單詞即可
其他必知必會(huì)
撤銷反撤銷
命令模式下:
u 撤銷
ctl+r 反撤銷
文本行移動(dòng)(縮排)
命令模式下:
>>: 文本行右移
<<:>
練習(xí):
V+向下三行+>:將選中的三行向右縮進(jìn)四個(gè)空格,同理,左縮進(jìn)也是
V+向下三行+>+.+.:將選中的三行向右縮進(jìn)四個(gè)空格后,再右移四格,再右移四格,即一個(gè)點(diǎn)就重復(fù)執(zhí)行一次
重復(fù)執(zhí)行
命令模式下:
.: 重復(fù)上一次操作的命令
標(biāo)記
當(dāng)我們?cè)陂_(kāi)發(fā)時(shí),如果有某一行需要稍后再來(lái)處理,可以先對(duì)它進(jìn)行標(biāo)記,后面需要處理時(shí)再進(jìn)行快速跳轉(zhuǎn)
標(biāo)記:m+x (x屬于[a-z][A-Z])
跳轉(zhuǎn):'+x
可以分別標(biāo)記多行為多個(gè)別名,再跳轉(zhuǎn);
如果給多行用了同一個(gè)別名,那么別名指向的是最新的一行
vim里執(zhí)行 shell 下命令
末行模式里輸入!,后面跟命令
末行命令擴(kuò)展
e .:瀏覽當(dāng)前目錄下的所有文件
e 文件名:切換編輯文件
n 文件名:新建并編輯文件
w 文件名:如果原來(lái)沒(méi)有文件,就創(chuàng)建新文件并將源文件的內(nèi)容寫入新文件,但編輯的還是源文件
切換文件之前,必須保存原來(lái)編寫的文件
末行模式下w命令的作用講解:
在實(shí)際開(kāi)發(fā)時(shí),用來(lái)起階段性備份的作用,和git的作用類似
分屏命令
末行模式下,
sp:橫向分屏
vsp:縱向分屏
切換窗口:Ctrl+w,w
互換窗口:r
關(guān)閉當(dāng)前窗口:c,但是不能關(guān)閉最后一個(gè)窗口
退出當(dāng)前窗口:q,能退出最后一個(gè)窗口
關(guān)閉其他窗口:o
練習(xí)
1.連續(xù)打出十個(gè)*
命令模式,10+i+*+esc;后面也可以加.,重復(fù)執(zhí)行;
8+i+print("hello world")+enter+esc:重復(fù)8行代碼;
但建議在進(jìn)入編輯模式之前,不要按數(shù)字,不然按了數(shù)字編輯了又esc了,就發(fā)現(xiàn)辛苦敲得代碼粘貼了很多。
2.給多行代碼添加注釋
命令模式,將光標(biāo)移動(dòng)到要注釋的第一行,^移動(dòng)到行首,
Ctrl+v進(jìn)入可視塊模式,向下選中多行要注釋的代碼,
I進(jìn)入編輯模式,在行首添加#,esc。
http://www.dengb.com/Linuxjc/1345680.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/1345680.htmlTechArticle編輯器之神-vim的使用,編輯器神-vim vim即vi的升級(jí)版;在linux中,vi是vim的軟鏈接,我們敲vi和vim出來(lái)的都是vim; 純手打,如有錯(cuò)誤,敬請(qǐng)指...
總結(jié)
以上是生活随笔為你收集整理的linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 即日起,荣耀线下门店免费提供血氧饱和度检
- 下一篇: linux安装nginx1.9,Cent