Vim學(xué)習(xí)筆記
**Vim:
vim是一款功能強大的文本編輯器,也是早年Vi編輯器的加強版,它的最大特色就是使用命令進行編輯,完全脫離了鼠標(biāo)的操作。vim是vi的升級版,可以有多級撤銷、可視化等操作
*三種模式:
a.命令模式 —— 直接輸入命令
b.編輯模式 —— 進入編輯模式編寫文字
c.末行模式 —— 要加:的是末行模式命令
*進入/退出編輯模式(append):
i —— 在光標(biāo)前插入文本
a —— 在光標(biāo)后插入文本
o —— 在當(dāng)前行下一行插入文本
O —— 在當(dāng)前行上一行插入文本
esc —— 退出編輯模式(退出編輯模式才能輸入命令)
*復(fù)制粘貼(進入編輯模式后)
Ctrl + Insert 復(fù)制(同linux命令)(類比Windows的Ctrl + c)
Shift + Insert 粘貼(同linux命令)(類比Windows的Ctrl + v)
*光標(biāo)移動、文本選擇
h、j、k、l(或空格) —— 左、下、上、右
gg —— 光標(biāo)到第一行開頭
V —— 選擇單行,然后↑或↓鍵可選擇多行
G(Shift + g) —— 光標(biāo)到末行開頭
ggVG —— 文本全選
g_(或$(即shift + 4)) —— 光標(biāo)到當(dāng)前行末
^(即shift + 6)(或0) —— 回到當(dāng)前的行首
數(shù)字 + G —— 跳轉(zhuǎn)到指定行(若不知道那是第幾行,可用:set nu顯示行號)
*復(fù)制與粘貼(在命令模式時)
y —— 復(fù)制所選文本(然后可在電腦其他地方Ctrl + v粘貼)
p —— 在該行下方粘貼所復(fù)制內(nèi)容
數(shù)字n + p —— 在該行下方粘貼n行所復(fù)制的內(nèi)容
yy —— 復(fù)制單行
數(shù)字n + y —— 復(fù)制當(dāng)前行且復(fù)制往下數(shù)n-1行
*刪除
dd —— 刪除單行(即把當(dāng)前行剪切了,可換到別的行直接p粘貼)
數(shù)字n + dd —— 刪除當(dāng)前行且刪除往下數(shù)n-1行
dG —— 刪除當(dāng)前光標(biāo)行及往下行的內(nèi)容
ggdG —— 第一行及其往下行都刪除(即從上往下的全部刪除)
dgg —— 刪除當(dāng)前光標(biāo)行及往上行的內(nèi)容
Gdgg —— 最后一行及其往上行都刪除(即從下往上的全部刪除)
x —— 刪除光標(biāo)后的一個字符
X —— 刪除光標(biāo)前的一個字符
數(shù)字n + x/X —— 原理同上
*撤銷與重做
vi和vim的多級撤銷不管操作了多少步,都可以撤銷到剛進來的狀態(tài),但是一旦退出再進來,就無法撤銷了
u —— 撤銷(類比Ctrl + z)
Ctrl + r —— 重做(類比Ctrl + y 或 Ctrl + Shift + z)
Tips:這里vi和vim有點區(qū)別
如果是vi,那么u是改變撤銷方向,即按一次u然后再ctrl + r、ctrl + r……就可以多級撤銷,如果想重做,那么再按一次u,再ctrl + r、ctrl + r就可以多級重做。
而如果是vim則不停按u就是多級撤銷,不停按ctrl + r就是多級重做。
*查找與替換
查找:
/(要查找的字符或字符串) —— 從當(dāng)前光標(biāo)往后查找指定內(nèi)容
n —— 查找下一個匹配的字符
N —— 查找上一個匹配的字符
?(要查找的字符或字符串) —— 從當(dāng)前光標(biāo)往前查找指定內(nèi)容
n —— 查找上一個匹配的字符
N —— 查找下一個匹配的字符
替換:
光標(biāo)移動到要更改的字符前(這里說的字符前其實就是光標(biāo)白點與該字符重合)按r然后按需要替換的目標(biāo)字符 —— 單次替換
R(即shift + r) —— 切換到替換模式,esc退出
*保存與退出
:w —— 保存
:q —— 退出
ZZ(或“:wq”或“:x”) —— 保存并退出(若文件的user權(quán)限是只讀的即只有r沒有w,那么退出要用:wq!(或:x!),其中!表示強制執(zhí)行保存,但如果是group或other權(quán)限沒有w,此法也不能奏效)
:q! —— 不保存并退出(其中!指強制執(zhí)行,即若寫了東西但是確認不保存退出,若沒寫或沒修改任何東西,直接:q即可退出)
注意:若文件修改后直接關(guān)閉終端,或意外關(guān)閉電腦,vim會作一個自動保存(假設(shè)文件為A.txt),生成一個.A.txt.swp的隱藏文件,當(dāng)下次打開A.txt時會提示是否恢復(fù)(每次打開都會有),如果不想該信息產(chǎn)生,要手動刪除當(dāng)前目錄下的隱藏文件rm .A.txt.swp
*常用命令擴展
J —— 把光標(biāo)所在行和下一行提上來合并為一行
>> —— 向右縮進(類比Tab鍵)(一次縮進8個字符,也可調(diào),在Linux的某配置文件更改一下即可)
<< —— 向左縮進(類比shift + Tab鍵)
:%s/要替換的內(nèi)容/替換后的內(nèi)容/g —— 全局替換(其中g(shù)代表“全局”的意思)
:開始行數(shù),結(jié)束行數(shù)s/要替換的內(nèi)容/替換后的內(nèi)容 —— 局部替換
. —— 重復(fù)上一次命令操作
ctrl + f —— 下一屏
ctrl + b —— 上一屏
:set nu —— 顯示行號
:set nonu —— 取消顯示行號
:syntax on —— 開啟語法高亮
(如對.py文件的print()高亮,但是vi不支持此命令)
(syntax - (計算機語言的)句法,句法規(guī)則,語構(gòu),語法)
:syntax off —— 關(guān)閉語法高亮
更多命令可以搜索百度:vim鍵盤圖片,即可出現(xiàn)可視化的命令鍵盤圖片