vim折騰記
在選擇編輯器上面,我是一個(gè)糾結(jié)的人匹中,曾經(jīng)年少的我執(zhí)著地追求一款萬能的編輯器夏漱,可以支持所有編輯語言,靈活可定制顶捷,可純粹用鍵盤操作挂绰。符合這種條件的編輯器,非vim莫屬服赎。
在投入vim陣營之前葵蒂,我對其是敬而遠(yuǎn)之的。第一次使用vim专肪,我的第一感覺是:
"挖槽刹勃,這是什么鬼?行號沒有嚎尤,語法高亮沒有荔仁,自動提示也沒有,這跟txt有什么區(qū)別... 趕緊退出芽死,靠乏梁,怎么還退不出?這反人類的東西還被譽(yù)為編輯器之神关贵?“
后來看了大神們對于vim的配置遇骑,才知道vim原來還可以這么玩,推薦閱讀 老司機(jī)亂談編輯器之神揖曾,這篇文章讓我驚嘆于vim的牛逼落萎,感覺vim無所不能,開始想象著自己學(xué)會vim后炭剪,在其他人都用各種ide的情況下练链,我將vim窗口最大化,鍵指如飛奴拦,猶如彈鋼琴的藝術(shù)家媒鼓。這個(gè)裝逼的場景,想想都覺得飄飄然...
在各種酷炫功能的吸引下,我開始沉迷于如何折騰vim
裝逼是人類的剛需
vim的學(xué)習(xí)曲線比較陡峭绿鸣,如果你是純粹的小白疚沐,強(qiáng)烈推薦 簡明 VIM 練級攻略,跟著此文練習(xí)幾天潮模,vim最基本的功能就熟悉了亮蛔。
對vim有初步的認(rèn)知后,要進(jìn)一步系統(tǒng)地學(xué)習(xí)vim再登,《Vim實(shí)用技巧(第2版)》是不二選擇
掌握vim的基礎(chǔ)命令后尔邓,我就開始了折騰vim的辛酸血淚史,一開始是自己配置.vimrc
锉矢,后來看到網(wǎng)上有很多現(xiàn)成的配置梯嗽,如號稱vim終極配置的 spf13-vim,國內(nèi)的 spacevim 將vim配置得如同開箱即用的ide
在嘗試各種vim配置后沽损,沒有哪一個(gè)配置是真正用得稱手的灯节,總有些坑在等著我,而且將vim打造得如此復(fù)雜绵估,總感覺格格不入炎疆,貌合神離,且并沒有ide好用国裳。
既然如此形入,為何要去折騰vim? 直接用ide不就行了?
可是習(xí)慣了vim的模式切換缝左,鍵位操作亿遂,再也無法去用ide那些奇奇怪怪的快捷鍵組合。
最終的解決方案就是用 jetbrains全家桶渺杉,然后安裝ideavim
插件蛇数,既能享受ide集成環(huán)境的便利,又得繼續(xù)使用強(qiáng)大的vim, 而且jetbrains全家桶已經(jīng)囊括了主流編程語言是越,不管是寫PHP(phpstorm), 還是擼python(pyCharm), 又或者是玩golang(GoLang)耳舅,都有對應(yīng)的ide,但使用起來就如同在用同一款編輯器
vim常用命令
vim是學(xué)不完的倚评,即使是用了vim十年的老手浦徊,也不敢說完全掌握了vim。但常用的vim指令并不是很多天梧,以下列舉我常用的指令:
光標(biāo)移動
- 0 到行頭
- ^ 到本行第一個(gè)不是blank的位置
- $ 到行尾
- g_ 到本行最后一個(gè)不是blank的位置
- NG 到第N行 或者是 :N
- w 到下一個(gè)單詞的開頭
- e 到下一個(gè)單詞的結(jié)尾
- % 匹配括號移動
- 和 # 匹配光標(biāo)當(dāng)前所在的單詞盔性,移動光標(biāo)到下一個(gè)/上一個(gè)匹配單詞
- f{char} 到下一個(gè){char}
- t{char} 到{char}前的一個(gè)字符
- Nf{char} 在當(dāng)前行查找第N個(gè)出現(xiàn)的{char} 如:3fa
- F 和 T 與 f 和 t 反方向
- dt{char} 刪除{char}之前的所有內(nèi)容
- ; 與 , 跳到下/上一個(gè)由f/F, t/T查找的字符
替換
- :%s/原文本/替換的內(nèi)容/g 全文替換
- :10,20/原文本/替換的內(nèi)容/g 指定行號替換
指定行數(shù)操作
- :10,20y 復(fù)制10至20行
- :10,20d 刪除10至20行
高效操作
- . 重復(fù)上一次的命令
- N<command> 重復(fù)某個(gè)命令N次
2dd 刪除2行
3p 粘貼文本3次
100idesu[ESC] 會寫下100個(gè) desu
跳轉(zhuǎn)
- ctrl + o 回到上一處
- ctrl + i 回到下一處
書簽
- ma 設(shè)置當(dāng)前文件的書簽
- mA 設(shè)置全局文件的書簽
- `a 跳到書簽a
- `A 跳到書簽A
- :marks 查看當(dāng)前所有書簽
宏操作
- 首先,按下 q腿倚,然后按下你想要保存的寄存器,任何小寫字母都可以。比如我們來把它保存到 q 這個(gè)寄存器中敷燎。按下 qq暂筝,你會發(fā)現(xiàn)命令行里已經(jīng)顯示了 "recording @q"。
- 如果你已經(jīng)錄制完成硬贯,那么只需要再按一次 q 就可以結(jié)束錄制焕襟。
- 如果你想調(diào)用剛才錄制的宏,只需要 [count]@q
- 如果你想調(diào)用上一次使用的宏饭豹,只需要 [count]@@
實(shí)例:一個(gè)插入字符串 "abc" 后換行的宏鸵赖,重復(fù)調(diào)用十次:
qq
iabc<cr><esc> # <cr> 表示回車鍵
q
10@q
Tip: 如果是windows系統(tǒng),ide啟用vim插件的體驗(yàn)不太好拄衰,因?yàn)閏trl既是vim的功能鍵它褪,又是windows功能鍵,兩者會有沖突翘悉,用著不是很爽茫打。mac的功能鍵是command鍵,避免了沖突問題
如果覺得本文對你有所幫助妖混,點(diǎn)個(gè)贊老赤,或者賞杯咖啡錢,你的認(rèn)可對我很重要