vi鍛戒护

鏇剧粡浣跨敤浜嗗嚑骞村鐨刅im锛屾墜鍐屼篃缈昏繃涓�閬嶃�傝櫧鐒剁幇鍦ㄤ笉鎬庝箞鐢╲im浜嗭紝鏇剧粡鐨勭瑪璁拌繕鏄创鍑烘潵锛屼笌鍠滄vim鐨勬湅鍙嬪垎浜��

绱㈠紩

1. 鍏充簬Vim

1.1 Vim鐨勫嚑绉嶆ā寮�

2. 鍚姩Vim

3. 鏂囨。鎿嶄綔

4. 鍏夋爣鐨勭Щ鍔�

4.1 鍩烘湰绉诲姩

4.2 缈诲睆

4.3 鏍囪

5. 鎻掑叆鏂囨湰

5.1 鍩烘湰鎻掑叆

5.2 鏀瑰啓鎻掑叆

6. 鍓垏澶嶅埗鍜屽瘎瀛樺櫒

6.1 鍓垏鍜屽鍒躲�佺矘璐�

6.2 鏂囨湰瀵硅薄

6.3 瀵勫瓨鍣�

7. 鏌ユ壘涓庢浛鎹�

7.1 鏌ユ壘

7.2 鏇挎崲

7.3 姝e垯琛ㄨ揪寮�

8. 鎺掔増

8.1 鍩烘湰鎺掔増

8.2 鎷煎啓妫�鏌�

8.3 缁熻瀛楁暟

9. 缂栬緫澶氫釜鏂囦欢

9.1 涓�娆$紪杈戝涓枃浠�

9.2 澶氭爣绛剧紪杈�

9.3 缂撳啿鍖�

10. 鍒嗗睆缂栬緫

10.1 姘村钩鍒嗗壊

10.2 鍨傜洿鍒嗗壊

10.3 鍏抽棴瀛愮獥鍙�

10.4 璋冩暣绐楀彛澶у皬

10.5 鍒囨崲鍜岀Щ鍔ㄧ獥鍙�

11. 蹇�熺紪杈�

11.1 鏀瑰彉澶у皬鍐�

11.2 鏇挎崲锛坣ormal妯″紡锛�

11.3 鎾ゆ秷涓庨噸鍋氾紙normal妯″紡锛�

11.4 瀹�

12. 缂栬緫鐗规畩鏂囦欢

12.1 鏂囦欢鍔犺В瀵�

12.2 鏂囦欢鐨勭紪鐮�

12.3 鏂囦欢鏍煎紡

13. 缂栫▼杈呭姪

13.1 涓�浜涙寜閿�

13.2 ctags

13.3 cscope

13.4 gtags

13.5 缂栬瘧

13.6 蹇�熶慨鏀圭獥鍙�

13.7 鑷姩琛ュ叏

13.8 澶氳缂╄繘缂╁嚭

13.9 鎶樺彔

14. 鍛戒护琛�

14.1 鍛戒护琛屾ā寮忎笅鐨勫揩鎹烽敭锛�

14.2 鎵ц澶栭儴鍛戒护

15. 鍏跺畠

15.1 宸ヤ綔鐩綍

15.2 涓�浜涘揩鎹烽敭锛堟敹闆嗕腑锛�

15.3 鍦ㄧ嚎甯姪

15.4 涓�浜涘皬鍔熻兘

1. 鍏充簬Vim

vim鏄垜鏈�鍠滄鐨勭紪杈戝櫒锛屼篃鏄痩inux涓嬬浜屽己澶х殑缂栬緫鍣ㄣ�� 铏界劧emacs鏄叕璁ょ殑涓栫晫绗竴锛屾垜璁や负浣跨敤emacs骞舵病鏈変娇鐢╲i杩涜缂栬緫鏉ュ緱楂樻晥銆� 濡傛灉鏄垵瀛i锛岃繍琛屼竴涓媣imtutor鏄釜鑱槑鐨勫喅瀹氥�� 锛堝鏋滀綘鐨勭郴缁熺幆澧冧笉鏄腑鏂囷紝鑰屼綘鎯充娇鐢ㄤ腑鏂囩殑vimtutor锛屽氨杩愯vimtutor zh锛�

1.1 Vim鐨勫嚑绉嶆ā寮�

姝e父妯″紡锛氬彲浠ヤ娇鐢ㄥ揩鎹烽敭鍛戒护锛屾垨鎸�:杈撳叆鍛戒护琛屻��

鎻掑叆妯″紡锛氬彲浠ヨ緭鍏ユ枃鏈紝鍦ㄦ甯告ā寮忎笅锛屾寜i銆乤銆乷绛夐兘鍙互杩涘叆鎻掑叆妯″紡銆�

鍙妯″紡锛氭甯告ā寮忎笅鎸塿鍙互杩涘叆鍙妯″紡锛� 鍦ㄥ彲瑙嗘ā寮忎笅锛岀Щ鍔ㄥ厜鏍囧彲浠ラ�夋嫨鏂囨湰銆傛寜V杩涘叆鍙琛屾ā寮忥紝 鎬绘槸鏁磋鏁磋鐨勯�変腑銆俢trl+v杩涘叆鍙鍧楁ā寮忋��

鏇挎崲妯″紡锛氭甯告ā寮忎笅锛屾寜R杩涘叆銆�

2. 鍚姩Vim

vim -c cmd file: 鍦ㄦ墦寮�鏂囦欢鍓嶏紝鍏堟墽琛屾寚瀹氱殑鍛戒护锛�

vim -r file: 鎭㈠涓婃寮傚父閫�鍑虹殑鏂囦欢锛�

vim -R file: 浠ュ彧璇荤殑鏂瑰紡鎵撳紑鏂囦欢锛屼絾鍙互寮哄埗淇濆瓨锛�

vim -M file: 浠ュ彧璇荤殑鏂瑰紡鎵撳紑鏂囦欢锛屼笉鍙互寮哄埗淇濆瓨锛�

vim -y num file: 灏嗙紪杈戠獥鍙g殑澶у皬璁句负num琛岋紱

vim + file: 浠庢枃浠剁殑鏈熬寮�濮嬶紱

vim +num file: 浠庣num琛屽紑濮嬶紱

vim +/string file: 鎵撳紑file锛屽苟灏嗗厜鏍囧仠鐣欏湪绗竴涓壘鍒扮殑string涓娿��

vim --remote file: 鐢ㄥ凡鏈夌殑vim杩涚▼鎵撳紑鎸囧畾鐨勬枃浠躲�� 濡傛灉浣犱笉鎯冲惎鐢ㄥ涓獀im浼氳瘽锛岃繖涓緢鏈夌敤銆備絾瑕佹敞鎰忥紝 濡傛灉浣犵敤vim锛屼細瀵绘壘鍚嶅彨VIM鐨勬湇鍔″櫒锛涘鏋滀綘宸茬粡鏈変竴涓猤vim鍦ㄨ繍琛屼簡锛� 浣犲彲浠ョ敤gvim --remote file鍦ㄥ凡鏈夌殑gvim涓墦寮�鏂囦欢銆�

3. 鏂囨。鎿嶄綔

:e file --鍏抽棴褰撳墠缂栬緫鐨勬枃浠讹紝骞跺紑鍚柊鐨勬枃浠躲�� 濡傛灉瀵瑰綋鍓嶆枃浠剁殑淇敼鏈繚瀛橈紝vi浼氳鍛娿��

:e! file --鏀惧純瀵瑰綋鍓嶆枃浠剁殑淇敼锛岀紪杈戞柊鐨勬枃浠躲��

:e+file -- 寮�濮嬫柊鐨勬枃浠讹紝骞朵粠鏂囦欢灏惧紑濮嬬紪杈戙��

:e+n file -- 寮�濮嬫柊鐨勬枃浠讹紝骞朵粠绗琻琛屽紑濮嬬紪杈戙��

:enew --缂栬瘧涓�涓湭鍛藉悕鐨勬柊鏂囨。銆�(CTRL-W n)

:e -- 閲嶆柊鍔犺浇褰撳墠鏂囨。銆�

:e! -- 閲嶆柊鍔犺浇褰撳墠鏂囨。锛屽苟涓㈠純宸插仛鐨勬敼鍔ㄣ��

:e#鎴朿trl+^ -- 鍥炲埌鍒氭墠缂栬緫鐨勬枃浠讹紝寰堝疄鐢ㄣ��

:f鎴朿trl+g -- 鏄剧ず鏂囨。鍚嶏紝鏄惁淇敼锛屽拰鍏夋爣浣嶇疆銆�

:f filename -- 鏀瑰彉缂栬緫鐨勬枃浠跺悕锛岃繖鏃跺啀淇濆瓨鐩稿綋浜庡彟瀛樹负銆�

gf -- 鎵撳紑浠ュ厜鏍囨墍鍦ㄥ瓧绗︿覆涓烘枃浠跺悕鐨勬枃浠躲��

:w -- 淇濆瓨淇敼銆�

:n1,n2w filename -- 閫夋嫨鎬т繚瀛樹粠鏌恘1琛屽埌鍙2琛岀殑鍐呭銆�

:wq -- 淇濆瓨骞堕��鍑恒��

ZZ -- 淇濆瓨骞堕��鍑恒��

:x -- 淇濆瓨骞堕��鍑恒��

:q[uit] 鈥斺�旈��鍑哄綋鍓嶇獥鍙c��(CTRL-W q鎴朇TRL-W CTRL-Q)

:saveas newfilename -- 鍙﹀瓨涓�

:browse e -- 浼氭墦寮�涓�涓枃浠舵祻瑙堝櫒璁╀綘閫夋嫨瑕佺紪杈戠殑鏂囦欢銆� 濡傛灉鏄粓绔腑锛屽垯浼氭墦寮�netrw鐨勬枃浠舵祻瑙堢獥鍙o紱 濡傛灉鏄痝vim锛屽垯浼氭墦寮�涓�涓浘褰㈢晫闈㈢殑娴忚绐楀彛銆� 瀹為檯涓�:browse鍚庡彲浠ヨ窡浠讳綍缂栬緫鏂囨。鐨勫懡浠わ紝濡俿p绛夈�� 鐢╞rowse鎵撳紑鐨勮捣濮嬬洰褰曞彲浠ョ敱browsedir鏉ヨ缃細

:set browsedir=last -- 鐢ㄤ笂娆¤闂繃鐨勭洰褰曪紙榛樿锛夛紱

:set browsedir=buffer -- 鐢ㄥ綋鍓嶆枃浠舵墍鍦ㄧ洰褰曪紱

:set browsedir=current -- 鐢ㄥ綋鍓嶅伐浣滅洰褰曪紱

:Sex -- 姘村钩鍒嗗壊涓�涓獥鍙o紝娴忚鏂囦欢绯荤粺锛�

:Vex -- 鍨傜洿鍒嗗壊涓�涓獥鍙o紝娴忚鏂囦欢绯荤粺锛�

4. 鍏夋爣鐨勭Щ鍔�

4.1 鍩烘湰绉诲姩

浠ヤ笅绉诲姩閮芥槸鍦╪ormal妯″紡涓嬨��

h鎴栭��鏍�: 宸︾Щ涓�涓瓧绗︼紱

l鎴栫┖鏍�: 鍙崇Щ涓�涓瓧绗︼紱

j: 涓嬬Щ涓�琛岋紱

k: 涓婄Щ涓�琛岋紱

gj: 绉诲姩鍒颁竴娈靛唴鐨勪笅涓�琛岋紱

gk: 绉诲姩鍒颁竴娈靛唴鐨勪笂涓�琛岋紱

+鎴朎nter: 鎶婂厜鏍囩Щ鑷充笅涓�琛岀涓�涓潪绌虹櫧瀛楃銆�

-: 鎶婂厜鏍囩Щ鑷充笂涓�琛岀涓�涓潪绌虹櫧瀛楃銆�

w: 鍓嶇Щ涓�涓崟璇嶏紝鍏夋爣鍋滃湪涓嬩竴涓崟璇嶅紑澶达紱

W: 绉诲姩涓嬩竴涓崟璇嶅紑澶达紝浣嗗拷鐣ヤ竴浜涙爣鐐癸紱

e: 鍓嶇Щ涓�涓崟璇嶏紝鍏夋爣鍋滃湪涓嬩竴涓崟璇嶆湯灏撅紱

E: 绉诲姩鍒颁笅涓�涓崟璇嶆湯灏撅紝濡傛灉璇嶅熬鏈夋爣鐐癸紝鍒欑Щ鍔ㄥ埌鏍囩偣锛�

b: 鍚庣Щ涓�涓崟璇嶏紝鍏夋爣鍋滃湪涓婁竴涓崟璇嶅紑澶达紱

B: 绉诲姩鍒颁笂涓�涓崟璇嶅紑澶达紝蹇界暐涓�浜涙爣鐐癸紱

ge: 鍚庣Щ涓�涓崟璇嶏紝鍏夋爣鍋滃湪涓婁竴涓崟璇嶆湯灏撅紱

gE: 鍚実e锛屼笉杩団�樺崟璇嶁�欏寘鍚崟璇嶇浉閭荤殑鏍囩偣銆�

(: 鍓嶇Щ1鍙ャ��

): 鍚庣Щ1鍙ャ��

{: 鍓嶇Щ1娈点��

}: 鍚庣Щ1娈点��

fc: 鎶婂厜鏍囩Щ鍒板悓涓�琛岀殑涓嬩竴涓猚瀛楃澶�

Fc: 鎶婂厜鏍囩Щ鍒板悓涓�琛岀殑涓婁竴涓猚瀛楃澶�

tc: 鎶婂厜鏍囩Щ鍒板悓涓�琛岀殑涓嬩竴涓猚瀛楃鍓�

Tc: 鎶婂厜鏍囩Щ鍒板悓涓�琛岀殑涓婁竴涓猚瀛楃鍚�

;: 閰嶅悎f & t浣跨敤锛岄噸澶嶄竴娆�

,: 閰嶅悎f & t浣跨敤锛屽弽鍚戦噸澶嶄竴娆�

涓婇潰鐨勬搷浣滈兘鍙互閰嶅悎n浣跨敤锛屾瘮濡傚湪姝e父妯″紡(涓嬮潰浼氳鍒�)涓嬭緭鍏�3h锛� 鍒欏厜鏍囧悜宸︾Щ鍔�3涓瓧绗︺��

0: 绉诲姩鍒拌棣栥��

g0: 绉诲埌鍏夋爣鎵�鍦ㄥ睆骞曡琛岄銆�

^: 绉诲姩鍒版湰琛岀涓�涓潪绌虹櫧瀛楃銆�

g^: 鍚宆锛屼絾鏄Щ鍔ㄥ埌褰撳墠灞忓箷琛岀涓�涓潪绌哄瓧绗﹀銆�

$: 绉诲姩鍒拌灏俱��

g$: 绉诲姩鍏夋爣鎵�鍦ㄥ睆骞曡琛屽熬銆�

n|: 鎶婂厜鏍囩Щ鍒伴�抧鍒椾笂銆�

nG: 鍒版枃浠剁n琛屻��

:n 绉诲姩鍒扮n琛屻��

:$ 绉诲姩鍒版渶鍚庝竴琛屻��

H: 鎶婂厜鏍囩Щ鍒板睆骞曟渶椤剁涓�琛屻��

M: 鎶婂厜鏍囩Щ鍒板睆骞曚腑闂翠竴琛屻��

L: 鎶婂厜鏍囩Щ鍒板睆骞曟渶搴曠涓�琛屻��

gg: 鍒版枃浠跺ご閮ㄣ��

G: 鍒版枃浠跺熬閮ㄣ��

4.2 缈诲睆

ctrl+f: 涓嬬炕涓�灞忋��

ctrl+b: 涓婄炕涓�灞忋��

ctrl+d: 涓嬬炕鍗婂睆銆�

ctrl+u: 涓婄炕鍗婂睆銆�

ctrl+e: 鍚戜笅婊氬姩涓�琛屻��

ctrl+y: 鍚戜笂婊氬姩涓�琛屻��

n%: 鍒版枃浠秐%鐨勪綅缃��

zz: 灏嗗綋鍓嶈绉诲姩鍒板睆骞曚腑澶��

zt: 灏嗗綋鍓嶈绉诲姩鍒板睆骞曢《绔��

zb: 灏嗗綋鍓嶈绉诲姩鍒板睆骞曞簳绔��

4.3 鏍囪

浣跨敤鏍囪鍙互蹇�熺Щ鍔ㄣ�傚埌杈炬爣璁板悗锛屽彲浠ョ敤Ctrl+o杩斿洖鍘熸潵鐨勪綅缃�� Ctrl+o鍜孋trl+i 寰堝儚娴忚鍣ㄤ笂鐨勫悗閫�鍜屽墠杩涖��

m{a-z}: 鏍囪鍏夋爣鎵�鍦ㄤ綅缃紝灞�閮ㄦ爣璁帮紝鍙敤浜庡綋鍓嶆枃浠躲��

m{A-Z}: 鏍囪鍏夋爣鎵�鍦ㄤ綅缃紝鍏ㄥ眬鏍囪銆傛爣璁颁箣鍚庯紝閫�鍑篤im锛� 閲嶆柊鍚姩锛屾爣璁颁粛鐒舵湁鏁堛��

`{a-z}: 绉诲姩鍒版爣璁颁綅缃��

'{a-z}: 绉诲姩鍒版爣璁拌鐨勮棣栥��

`{0-9}锛氬洖鍒颁笂[2-10]娆″叧闂璿im鏃舵渶鍚庣寮�鐨勪綅缃��

``: 绉诲姩鍒颁笂娆$紪杈戠殑浣嶇疆銆�''涔熷彲浠ワ紝涓嶈繃``绮剧‘鍒板垪锛岃��''绮剧‘鍒拌 銆傚鏋滄兂璺宠浆鍒版洿鑰佺殑浣嶇疆锛屽彲浠ユ寜C-o锛岃烦杞埌鏇存柊鐨勪綅缃敤C-i銆�

`": 绉诲姩鍒颁笂娆$寮�鐨勫湴鏂广��

`.: 绉诲姩鍒版渶鍚庢敼鍔ㄧ殑鍦版柟銆�

:marks 鏄剧ず鎵�鏈夋爣璁般��

:delmarks a b -- 鍒犻櫎鏍囪a鍜宐銆�

:delmarks a-c -- 鍒犻櫎鏍囪a銆乥鍜宑銆�

:delmarks a c-f -- 鍒犻櫎鏍囪a銆乧銆乨銆乪銆乫銆�

:delmarks! -- 鍒犻櫎褰撳墠缂撳啿鍖虹殑鎵�鏈夋爣璁般��

:help mark-motions 鏌ョ湅鏇村鍏充簬mark鐨勭煡璇嗐��

5. 鎻掑叆鏂囨湰

5.1 鍩烘湰鎻掑叆

i: 鍦ㄥ厜鏍囧墠鎻掑叆锛涗竴涓皬鎶�宸э細鎸�8锛屽啀鎸塱锛岃繘鍏ユ彃鍏ユā寮忥紝杈撳叆=锛� 鎸塭sc杩涘叆鍛戒护妯″紡锛屽氨浼氬嚭鐜�8涓�=銆� 杩欏湪鎻掑叆鍒嗗壊绾挎椂闈炲父鏈夌敤锛屽30i+灏辨彃鍏ヤ簡36涓�+缁勬垚鐨勫垎鍓茬嚎銆�

I: 鍦ㄥ綋鍓嶈绗竴涓潪绌哄瓧绗﹀墠鎻掑叆锛�

gI: 鍦ㄥ綋鍓嶈绗竴鍒楁彃鍏ワ紱

a: 鍦ㄥ厜鏍囧悗鎻掑叆锛�

A: 鍦ㄥ綋鍓嶈鏈�鍚庢彃鍏ワ紱

o: 鍦ㄤ笅闈㈡柊寤轰竴琛屾彃鍏ワ紱

O: 鍦ㄤ笂闈㈡柊寤轰竴琛屾彃鍏ワ紱

:r filename鍦ㄥ綋鍓嶄綅缃彃鍏ュ彟涓�涓枃浠剁殑鍐呭銆�

:[n]r filename鍦ㄧn琛屾彃鍏ュ彟涓�涓枃浠剁殑鍐呭銆�

:r !date 鍦ㄥ厜鏍囧鎻掑叆褰撳墠鏃ユ湡涓庢椂闂淬�傚悓鐞嗭紝:r !command鍙互灏嗗叾瀹僺hell鍛戒护鐨勮緭鍑烘彃鍏ュ綋鍓嶆枃妗c��

5.2 鏀瑰啓鎻掑叆

c[n]w: 鏀瑰啓鍏夋爣鍚�1(n)涓瘝銆�

c[n]l: 鏀瑰啓鍏夋爣鍚巒涓瓧姣嶃��

c[n]h: 鏀瑰啓鍏夋爣鍓峮涓瓧姣嶃��

[n]cc: 淇敼褰撳墠[n]琛屻��

[n]s: 浠ヨ緭鍏ョ殑鏂囨湰鏇夸唬鍏夋爣涔嬪悗1(n)涓瓧绗︼紝鐩稿綋浜巆[n]l銆�

[n]S: 鍒犻櫎鎸囧畾鏁扮洰鐨勮锛屽苟浠ユ墍杈撳叆鏂囨湰浠f浛涔嬨��

娉ㄦ剰锛岀被浼糲nw,dnw,ynw鐨勫舰寮忓悓鏍峰彲浠ュ啓涓簄cw,ndw,nyw銆�

6. 鍓垏澶嶅埗鍜屽瘎瀛樺櫒

6.1 鍓垏鍜屽鍒躲�佺矘璐�

[n]x: 鍓垏鍏夋爣鍙宠竟n涓瓧绗︼紝鐩稿綋浜巇[n]l銆�

[n]X: 鍓垏鍏夋爣宸﹁竟n涓瓧绗︼紝鐩稿綋浜巇[n]h銆�

y: 澶嶅埗鍦ㄥ彲瑙嗘ā寮忎笅閫変腑鐨勬枃鏈��

yy or Y: 澶嶅埗鏁磋鏂囨湰銆�

y[n]w: 澶嶅埗涓�(n)涓瘝銆�

y[n]l: 澶嶅埗鍏夋爣鍙宠竟1(n)涓瓧绗︺��

y[n]h: 澶嶅埗鍏夋爣宸﹁竟1(n)涓瓧绗︺��

y$: 浠庡厜鏍囧綋鍓嶄綅缃鍒跺埌琛屽熬銆�

y0: 浠庡厜鏍囧綋鍓嶄綅缃鍒跺埌琛岄銆�

:m,ny 澶嶅埗m琛屽埌n琛岀殑鍐呭銆�

y1G鎴杫gg: 澶嶅埗鍏夋爣浠ヤ笂鐨勬墍鏈夎銆�

yG: 澶嶅埗鍏夋爣浠ヤ笅鐨勬墍鏈夎銆�

yaw鍜寉as锛氬鍒朵竴涓瘝鍜屽鍒朵竴涓彞瀛愶紝鍗充娇鍏夋爣涓嶅湪璇嶉鍜屽彞棣栦篃娌″叧绯汇��

d: 鍒犻櫎锛堝壀鍒囷級鍦ㄥ彲瑙嗘ā寮忎笅閫変腑鐨勬枃鏈��

d$ or D: 鍒犻櫎锛堝壀鍒囷級褰撳墠浣嶇疆鍒拌灏剧殑鍐呭銆�

d[n]w: 鍒犻櫎锛堝壀鍒囷級1(n)涓崟璇�

d[n]l: 鍒犻櫎锛堝壀鍒囷級鍏夋爣鍙宠竟1(n)涓瓧绗︺��

d[n]h: 鍒犻櫎锛堝壀鍒囷級鍏夋爣宸﹁竟1(n)涓瓧绗︺��

d0: 鍒犻櫎锛堝壀鍒囷級褰撳墠浣嶇疆鍒拌棣栫殑鍐呭

[n] dd: 鍒犻櫎锛堝壀鍒囷級1(n)琛屻��

:m,nd 鍓垏m琛屽埌n琛岀殑鍐呭銆�

d1G鎴杁gg: 鍓垏鍏夋爣浠ヤ笂鐨勬墍鏈夎銆�

dG: 鍓垏鍏夋爣浠ヤ笅鐨勬墍鏈夎銆�

daw鍜宒as锛氬壀鍒囦竴涓瘝鍜屽壀鍒囦竴涓彞瀛愶紝鍗充娇鍏夋爣涓嶅湪璇嶉鍜屽彞棣栦篃娌″叧绯汇��

d/f锛氳繖鏄竴涓瘮杈冮珮绾х殑缁勫悎鍛戒护锛屽畠灏嗗垹闄ゅ綋鍓嶄綅缃� 鍒颁笅涓�涓猣涔嬮棿鐨勫唴瀹广��

p: 鍦ㄥ厜鏍囦箣鍚庣矘璐淬��

P: 鍦ㄥ厜鏍囦箣鍓嶇矘璐淬��

6.2 鏂囨湰瀵硅薄

aw锛氫竴涓瘝

as锛氫竴鍙ャ��

ap锛氫竴娈点��

ab锛氫竴鍧楋紙鍖呭惈鍦ㄥ渾鎷彿涓殑锛夈��

y, d, c, v閮藉彲浠ヨ窡鏂囨湰瀵硅薄銆�

6.3 瀵勫瓨鍣�

a-z锛氶兘鍙互鐢ㄤ綔瀵勫瓨鍣ㄥ悕銆�"ayy鎶婂綋鍓嶈鐨勫唴瀹规斁鍏瀵勫瓨鍣ㄣ��

A-Z锛氱敤澶у啓瀛楁瘝绱㈠紩瀵勫瓨鍣紝鍙互鍦ㄥ瘎瀛樺櫒涓拷鍔犲唴瀹广�� 濡�"Ayy鎶婂綋鍓嶈鐨勫唴瀹硅拷鍔犲埌a瀵勫瓨鍣ㄤ腑銆�

:reg 鏄剧ず鎵�鏈夊瘎瀛樺櫒鐨勫唴瀹广��

""锛氫笉鍔犲瘎瀛樺櫒绱㈠紩鏃讹紝榛樿浣跨敤鐨勫瘎瀛樺櫒銆�

"*锛氬綋鍓嶉�夋嫨缂撳啿鍖猴紝"*yy鎶婂綋鍓嶈鐨勫唴瀹规斁鍏ュ綋鍓嶉�夋嫨缂撳啿鍖恒��

"+锛氱郴缁熷壀璐存澘銆�"+yy鎶婂綋鍓嶈鐨勫唴瀹规斁鍏ョ郴缁熷壀璐存澘銆�

7. 鏌ユ壘涓庢浛鎹�

7.1 鏌ユ壘

/something: 鍦ㄥ悗闈㈢殑鏂囨湰涓煡鎵緎omething銆�

?something: 鍦ㄥ墠闈㈢殑鏂囨湰涓煡鎵緎omething銆�

/pattern/+number: 灏嗗厜鏍囧仠鍦ㄥ寘鍚玴attern鐨勮鍚庨潰绗琻umber琛屼笂銆�

/pattern/-number: 灏嗗厜鏍囧仠鍦ㄥ寘鍚玴attern鐨勮鍓嶉潰绗琻umber琛屼笂銆�

n: 鍚戝悗鏌ユ壘涓嬩竴涓��

N: 鍚戝墠鏌ユ壘涓嬩竴涓��

鍙互鐢╣rep鎴杤imgrep鏌ユ壘涓�涓ā寮忛兘鍦ㄥ摢浜涘湴鏂瑰嚭鐜拌繃锛�

鍏朵腑:grep鏄皟鐢ㄥ閮ㄧ殑grep绋嬪簭锛岃��:vimgrep鏄痸im鑷繁鐨勬煡鎵剧畻娉曘��

鐢ㄦ硶涓猴細 :vim[grep]/pattern/[g] [j] files

g鐨勫惈涔夋槸濡傛灉涓�涓ā寮忓湪涓�琛屼腑澶氭鍑虹幇锛屽垯杩欎竴琛屼篃鍦ㄧ粨鏋滀腑澶氭鍑虹幇銆�

j鐨勫惈涔夋槸grep缁撴潫鍚庯紝缁撴灉鍋滃湪绗琷椤癸紝榛樿鏄仠鍦ㄧ涓�椤广��

vimgrep鍓嶉潰鍙互鍔犳暟瀛楅檺瀹氭悳绱㈢粨鏋滅殑涓婇檺锛屽

:1vim/pattern/ % 鍙煡鎵鹃偅涓ā寮忓湪鏈枃浠朵腑鐨勭涓�涓嚭鐜般��

鍏跺疄vimgrep鍦ㄨ绾枃鏈數瀛愪功鏃剁壒鍒湁鐢紝鍙互鐢熸垚瀵艰埅鐨勭洰褰曘��

姣斿鐢靛瓙涔︿腑姣忎竴鑺傜殑鏍囬褰㈠紡涓猴細n. xxxx銆備綘灏卞彲浠ヨ繖鏍凤細

:vim/^d{1,}./ %

鐒跺悗鐢�:cw鎴�:copen鏌ョ湅缁撴灉锛屽彲浠ョ敤C-w H鎶妐uickfix绐楀彛绉诲埌宸︿晶锛�

灏辨洿鍍忎釜鐩綍浜嗐��

7.2 鏇挎崲

:s/old/new - 鐢╪ew鏇挎崲褰撳墠琛岀涓�涓猳ld銆�

:s/old/new/g - 鐢╪ew鏇挎崲褰撳墠琛屾墍鏈夌殑old銆�

:n1,n2s/old/new/g - 鐢╪ew鏇挎崲鏂囦欢n1琛屽埌n2琛屾墍鏈夌殑old銆�

:%s/old/new/g - 鐢╪ew鏇挎崲鏂囦欢涓墍鏈夌殑old銆�

:%s/^/xxx/g - 鍦ㄦ瘡涓�琛岀殑琛岄鎻掑叆xxx锛宆琛ㄧず琛岄銆�

:%s/$/xxx/g - 鍦ㄦ瘡涓�琛岀殑琛屽熬鎻掑叆xxx锛�$琛ㄧず琛屽熬銆�

鎵�鏈夋浛鎹㈠懡浠ゆ湯灏惧姞涓奵锛屾瘡涓浛鎹㈤兘灏嗛渶瑕佺敤鎴风‘璁ゃ�� 濡傦細%s/old/new/gc锛屽姞涓奿鍒欏拷鐣ュぇ灏忓啓(ignore)銆�

杩樻湁涓�绉嶆瘮鏇挎崲鏇寸伒娲荤殑鏂瑰紡锛屽畠鏄尮閰嶅埌鏌愪釜妯″紡鍚庢墽琛屾煇绉嶅懡浠わ紝

璇硶涓� :[range]g/pattern/command

渚嬪 :%g/^ xyz/normal dd銆�

琛ㄧず瀵逛簬浠ヤ竴涓┖鏍煎拰xyz寮�澶寸殑琛屾墽琛宯ormal妯″紡涓嬬殑dd鍛戒护銆�

鍏充簬range鐨勮瀹氫负锛�

濡傛灉涓嶆寚瀹歳ange锛屽垯琛ㄧず褰撳墠琛屻��

m,n: 浠巑琛屽埌n琛屻��

0: 鏈�寮�濮嬩竴琛岋紙鍙兘鏄繖鏍凤級銆�

$: 鏈�鍚庝竴琛�

.: 褰撳墠琛�

%: 鎵�鏈夎

7.3 姝e垯琛ㄨ揪寮�

楂樼骇鐨勬煡鎵炬浛鎹㈠氨瑕佺敤鍒版鍒欒〃杈惧紡銆�

\d: 琛ㄧず鍗佽繘鍒舵暟锛堟垜鐚滅殑锛�

\s: 琛ㄧず绌烘牸

\S: 闈炵┖瀛楃

\a: 鑻辨枃瀛楁瘝

\|: 琛ㄧず 鎴�

\.: 琛ㄧず.

{m,n}: 琛ㄧずm鍒皀涓瓧绗︺�傝繖瑕佸拰 \s涓嶾a绛夎繛鐢紝濡� \a\{m,n} 琛ㄧずm 鍒皀涓嫳鏂囧瓧姣嶃��

{m,}: 琛ㄧずm鍒版棤闄愬涓瓧绗︺��

**: 褰撳墠鐩綍涓嬬殑鎵�鏈夊瓙鐩綍銆�

:help pattern寰楀埌鏇村甯姪銆�

8. 鎺掔増

8.1 鍩烘湰鎺掔増

<< 鍚戝乏缂╄繘涓�涓猻hiftwidth

>> 鍚戝彸缂╄繘涓�涓猻hiftwidth

:ce(nter) 鏈鏂囧瓧灞呬腑

:le(ft) 鏈鏂囧瓧闈犲乏

:ri(ght) 鏈鏂囧瓧闈犲彸

gq 瀵归�変腑鐨勬枃瀛楅噸鎺掞紝鍗冲杩囬暱鐨勬枃瀛楄繘琛屾柇琛�

gqq 閲嶆帓褰撳墠琛�

gqnq 閲嶆帓n琛�

gqap 閲嶆帓褰撳墠娈�

gqnap 閲嶆帓n娈�

gqnj 閲嶆帓褰撳墠琛屽拰涓嬮潰n琛�

gqQ 閲嶆帓褰撳墠娈靛鏂囩珷鏈熬

J 鎷兼帴褰撳墠琛屽拰涓嬩竴琛�

gJ 鍚孞锛屼笉杩囧悎骞跺悗涓嶇暀绌烘牸銆�

8.2 鎷煎啓妫�鏌�

:set spell锛嶅紑鍚嫾鍐欐鏌ュ姛鑳�

:set nospell锛嶅叧闂嫾鍐欐鏌ュ姛鑳�

]s锛嶇Щ鍒颁笅涓�涓嫾鍐欓敊璇殑鍗曡瘝

[s锛嶄綔鐢ㄤ笌涓婁竴鍛戒护绫讳技锛屼絾瀹冩槸浠庣浉鍙嶆柟鍚戣繘琛屾悳绱�

z=锛嶆樉绀轰竴涓湁鍏虫嫾鍐欓敊璇崟璇嶇殑鍒楄〃锛屽彲浠庝腑閫夋嫨

zg锛嶅憡璇夋嫾鍐欐鏌ュ櫒璇ュ崟璇嶆槸鎷煎啓姝g‘鐨�

zw锛嶄笌涓婁竴鍛戒护鐩稿弽锛屽憡璇夋嫾鍐欐鏌ュ櫒璇ュ崟璇嶆槸鎷煎啓閿欒鐨�

8.3 缁熻瀛楁暟

g ^g鍙互缁熻鏂囨。瀛楃鏁帮紝琛屾暟銆� 灏嗗厜鏍囨斁鍦ㄦ渶鍚庝竴涓瓧绗︿笂锛岀敤瀛楃鏁板噺鍘昏鏁板彲浠ョ矖鐣ョ粺璁′腑鏂囨枃妗g殑瀛楁暟銆� 浠ヤ笂瀵� Mac 鎴� Unix 鐨勬枃浠舵牸寮忛�傜敤銆� 濡傛灉鏄� Windows 鏂囦欢鏍煎紡锛堝嵆鎹㈣绗︽湁涓や釜瀛楄妭锛夛紝瀛楁暟鐨勭粺璁℃柟娉曚负锛� 瀛楃鏁� - 琛屾暟 * 2銆�

9. 缂栬緫澶氫釜鏂囦欢

9.1 涓�娆$紪杈戝涓枃浠�

鎴戜滑鍙互涓�娆℃墦寮�澶氫釜鏂囦欢锛屽

vi a.txt b.txt c.txt

浣跨敤:next(:n)缂栬緫涓嬩竴涓枃浠躲��

:2n 缂栬緫涓�2涓枃浠躲��

浣跨敤:previous鎴�:N缂栬緫涓婁竴涓枃浠躲��

浣跨敤:wnext锛屼繚瀛樺綋鍓嶆枃浠讹紝骞剁紪杈戜笅涓�涓枃浠躲��

浣跨敤:wprevious锛屼繚瀛樺綋鍓嶆枃浠讹紝骞剁紪杈戜笂涓�涓枃浠躲��

浣跨敤:args 鏄剧ず鏂囦欢鍒楄〃銆�

:n filenames鎴�:args filenames 鎸囧畾鏂扮殑鏂囦欢鍒楄〃銆�

vi -o filenames 鍦ㄦ按骞冲垎鍓茬殑澶氫釜绐楀彛涓紪杈戝涓枃浠躲��

vi -O filenames 鍦ㄥ瀭鐩村垎鍓茬殑澶氫釜绐楀彛涓紪杈戝涓枃浠躲��

9.2 澶氭爣绛剧紪杈�

vim -p files: 鎵撳紑澶氫釜鏂囦欢锛屾瘡涓枃浠跺崰鐢ㄤ竴涓爣绛鹃〉銆�

:tabe, tabnew -- 濡傛灉鍔犳枃浠跺悕锛屽氨鍦ㄦ柊鐨勬爣绛句腑鎵撳紑杩欎釜鏂囦欢锛� 鍚﹀垯鎵撳紑涓�涓┖缂撳啿鍖恒��

^w gf -- 鍦ㄦ柊鐨勬爣绛鹃〉閲屾墦寮�鍏夋爣涓嬭矾寰勬寚瀹氱殑鏂囦欢銆�

:tabn -- 鍒囨崲鍒颁笅涓�涓爣绛俱�侰ontrol + PageDown锛屼篃鍙互銆�

:tabp -- 鍒囨崲鍒颁笂涓�涓爣绛俱�侰ontrol + PageUp锛屼篃鍙互銆�

[n] gt -- 鍒囨崲鍒颁笅涓�涓爣绛俱�傚鏋滃墠闈㈠姞浜唍锛� 灏卞垏鎹㈠埌绗琻涓爣绛俱�傜涓�涓爣绛剧殑搴忓彿灏辨槸1銆�

:tab split -- 灏嗗綋鍓嶇紦鍐插尯鐨勫唴瀹瑰湪鏂伴〉绛句腑鎵撳紑銆�

:tabc[lose] -- 鍏抽棴褰撳墠鐨勬爣绛鹃〉銆�

:tabo[nly] -- 鍏抽棴鍏跺畠鐨勬爣绛鹃〉銆�

:tabs -- 鍒楀嚭鎵�鏈夌殑鏍囩椤靛拰瀹冧滑鍖呭惈鐨勭獥鍙c��

:tabm[ove] [N] -- 绉诲姩鏍囩椤碉紝绉诲姩鍒扮N涓爣绛鹃〉涔嬪悗銆� 濡倀abm 0褰撳墠鏍囩椤碉紝灏变細鍙樻垚绗竴涓爣绛鹃〉銆�

9.3 缂撳啿鍖�

:buffers鎴�:ls鎴�:files 鏄剧ず缂撳啿鍖哄垪琛ㄣ��

ctrl+^锛氬湪鏈�杩戜袱涓紦鍐插尯闂村垏鎹€��

:bn -- 涓嬩竴涓紦鍐插尯銆�

:bp -- 涓婁竴涓紦鍐插尯銆�

:bl -- 鏈�鍚庝竴涓紦鍐插尯銆�

:b[n]鎴�:[n]b -- 鍒囨崲鍒扮n涓紦鍐插尯銆�

:nbw(ipeout) -- 褰诲簳鍒犻櫎绗琻涓紦鍐插尯銆�

:nbd(elete) -- 鍒犻櫎绗琻涓紦鍐插尯锛屽苟鏈湡姝e垹闄わ紝杩樺湪unlisted鍒楄〃涓��

:ba[ll] -- 鎶婃墍鏈夌殑缂撳啿鍖哄湪褰撳墠椤典腑鎵撳紑锛屾瘡涓紦鍐插尯鍗犱竴涓獥鍙c��

10. 鍒嗗睆缂栬緫

vim -o file1 file2:姘村钩鍒嗗壊绐楀彛锛屽悓鏃舵墦寮�file1鍜宖ile2

vim -O file1 file2:鍨傜洿鍒嗗壊绐楀彛锛屽悓鏃舵墦寮�file1鍜宖ile2

10.1 姘村钩鍒嗗壊

:split(:sp) -- 鎶婂綋鍓嶇獥姘村钩鍒嗗壊鎴愪袱涓獥鍙c��(CTRL-W s 鎴� CTRL-W CTRL-S) 娉ㄦ剰濡傛灉鍦ㄧ粓绔笅锛孋TRL-S鍙兘浼氬喕缁撶粓绔紝璇锋寜CTRL-Q缁х画銆�

:split filename -- 姘村钩鍒嗗壊绐楀彛锛屽苟鍦ㄦ柊绐楀彛涓樉绀哄彟涓�涓枃浠躲��

:nsplit(:nsp) -- 姘村钩鍒嗗壊鍑轰竴涓猲琛岄珮鐨勭獥鍙c��

:[N]new -- 姘村钩鍒嗗壊鍑轰竴涓狽琛岄珮鐨勭獥鍙o紝骞剁紪杈戜竴涓柊鏂囦欢銆� (CTRL-W n鎴� CTRL-W CTRL-N)

ctrl+w f --姘村钩鍒嗗壊鍑轰竴涓獥鍙o紝骞跺湪鏂扮獥鍙f墦寮�鍚嶇О涓哄厜鏍囨墍鍦ㄨ瘝鐨勬枃浠� 銆�

C-w C-^ -- 姘村钩鍒嗗壊涓�涓獥鍙o紝鎵撳紑鍒氭墠缂栬緫鐨勬枃浠躲��

10.2 鍨傜洿鍒嗗壊

:vsplit(:vsp) -- 鎶婂綋鍓嶇獥鍙e垎鍓叉垚姘村钩鍒嗗竷鐨勪袱涓獥鍙c�� (CTRL-W v鎴朇TRL CTRL-V)

:[N]vne[w] -- 鍨傜洿鍒嗗壊鍑轰竴涓柊绐楀彛銆�

:vertical 姘村钩鍒嗗壊鐨勫懡浠わ細 鐩稿簲鐨勫瀭鐩村垎鍓层��

10.3 鍏抽棴瀛愮獥鍙�

:qall -- 鍏抽棴鎵�鏈夌獥鍙o紝閫�鍑簐im銆�

:wall -- 淇濆瓨鎵�鏈変慨鏀硅繃鐨勭獥鍙c��

:only -- 鍙繚鐣欏綋鍓嶇獥鍙o紝鍏抽棴鍏跺畠绐楀彛銆�(CTRL-W o)

:close -- 鍏抽棴褰撳墠绐楀彛锛孋TRL-W c鑳藉疄鐜板悓鏍风殑鍔熻兘銆� (璞� :q :x鍚屾牱宸ヤ綔 )

10.4 璋冩暣绐楀彛澶у皬

ctrl+w + --褰撳墠绐楀彛澧為珮涓�琛屻�備篃鍙互鐢╪澧為珮n琛屻��

ctrl+w - --褰撳墠绐楀彛鍑忓皬涓�琛屻�備篃鍙互鐢╪鍑忓皬n琛屻��

ctrl+w _ --褰撳墠绐楀彛鎵╁睍鍒板敖鍙兘鐨勫ぇ銆備篃鍙互鐢╪璁惧畾琛屾暟銆�

:resize n -- 褰撳墠绐楀彛n琛岄珮銆�

ctrl+w = -- 鎵�鏈夌獥鍙e悓鏍烽珮搴︺��

n ctrl+w _ -- 褰撳墠绐楀彛鐨勯珮搴﹁瀹氫负n琛屻��

ctrl+w < --褰撳墠绐楀彛鍑忓皯涓�鍒椼�備篃鍙互鐢╪鍑忓皯n鍒椼��

ctrl+w > --褰撳墠绐楀彛澧炲涓�鍒椼�備篃鍙互鐢╪澧炲n鍒椼��

ctrl+w | --褰撳墠绐楀彛灏藉彲鑳界殑瀹姐�備篃鍙互鐢╪璁惧畾鍒楁暟銆�

10.5 鍒囨崲鍜岀Щ鍔ㄧ獥鍙�

濡傛灉鏀寔榧犳爣锛屽垏鎹㈠拰璋冩暣瀛愮獥鍙g殑澶у皬灏辩畝鍗曚簡銆�

ctrl+w ctrl+w: 鍒囨崲鍒颁笅涓�涓獥鍙c�傛垨鑰呮槸ctrl+w w銆�

ctrl+w p: 鍒囨崲鍒板墠涓�涓獥鍙c��

ctrl+w h(l,j,k):鍒囨崲鍒板乏锛堝彸锛屼笅锛屼笂锛夌殑绐楀彛銆�

ctrl+w t(b):鍒囨崲鍒版渶涓婏紙涓嬶級闈㈢殑绐楀彛銆�

ctrl+w H(L,K,J): 灏嗗綋鍓嶇獥鍙gЩ鍔ㄥ埌鏈�宸︼紙鍙炽�佷笂銆佷笅锛夐潰銆�

ctrl+w r锛氭棆杞獥鍙g殑浣嶇疆銆�

ctrl+w T: 灏嗗綋鍓嶇殑绐楀彛绉诲姩鍒版柊鐨勬爣绛鹃〉涓娿��

11. 蹇�熺紪杈�

11.1 鏀瑰彉澶у皬鍐�

~: 鍙嶈浆鍏夋爣鎵�鍦ㄥ瓧绗︾殑澶у皬鍐欍��

鍙妯″紡涓嬬殑U鎴杣锛氭妸閫変腑鐨勬枃鏈彉涓哄ぇ鍐欐垨灏忓啓銆�

gu(U)鎺ヨ寖鍥达紙濡�$锛屾垨G锛夛紝鍙互鎶婁粠鍏夋爣褰撳墠浣嶇疆鍒版寚瀹氫綅缃箣闂村瓧姣嶅叏閮� 杞崲鎴愬皬鍐欐垨澶у啓銆傚ggguG锛屽氨鏄妸寮�澶村埌鏈�鍚庝竴琛屼箣闂寸殑瀛楁瘝鍏ㄩ儴鍙樹负灏� 鍐欍�傚啀濡俫u5j锛屾妸褰撳墠琛屽拰涓嬮潰鍥涜鍏ㄩ儴鍙樻垚灏忓啓銆�

11.2 鏇挎崲锛坣ormal妯″紡锛�

r: 鏇挎崲鍏夋爣澶勭殑瀛楃锛屽悓鏍锋敮鎸佹眽瀛椼��

R: 杩涘叆鏇挎崲妯″紡锛屾寜esc鍥炲埌姝e父妯″紡銆�

11.3 鎾ゆ秷涓庨噸鍋氾紙normal妯″紡锛�

[n] u: 鍙栨秷涓�(n)涓敼鍔ㄣ��

:undo 5 -- 鎾ら攢5涓敼鍙樸��

:undolist -- 浣犵殑鎾ら攢鍘嗗彶銆�

ctrl + r: 閲嶅仛鏈�鍚庣殑鏀瑰姩銆�

U: 鍙栨秷褰撳墠琛屼腑鎵�鏈夌殑鏀瑰姩銆�

:earlier 4m -- 鍥炲埌4鍒嗛挓鍓�

:later 55s -- 鍓嶈繘55绉�

11.4 瀹�

. --閲嶅涓婁竴涓紪杈戝姩浣�

qa锛氬紑濮嬪綍鍒跺畯a锛堥敭鐩樻搷浣滆褰曪級

q锛氬仠姝㈠綍鍒�

@a锛氭挱鏀惧畯a

12. 缂栬緫鐗规畩鏂囦欢

12.1 鏂囦欢鍔犺В瀵�

vim -x file: 寮�濮嬬紪杈戜竴涓姞瀵嗙殑鏂囦欢銆�

:X -- 涓哄綋鍓嶆枃浠惰缃瘑鐮併��

:set key= -- 鍘婚櫎鏂囦欢鐨勫瘑鐮併��

杩欓噷鏄�婊囩嫄鎬荤粨鐨勬瘮杈冮珮绾х殑vi鎶�宸с��

12.2 鏂囦欢鐨勭紪鐮�

:e ++enc=utf8 filename, 璁﹙im鐢╱tf-8鐨勭紪鐮佹墦寮�杩欎釜鏂囦欢銆�

:w ++enc=gbk锛屼笉绠″綋鍓嶆枃浠朵粈涔堢紪鐮侊紝鎶婂畠杞瓨鎴恎bk缂栫爜銆�

:set fenc鎴�:set fileencoding锛屾煡鐪嬪綋鍓嶆枃浠剁殑缂栫爜銆�

鍦╲imrc涓坊鍔爏et fileencoding=ucs-bom,utf-8,cp936锛寁im浼氭牴鎹鎵撳紑鐨勬枃浠堕�夋嫨鍚堥�傜殑缂栫爜銆� 娉ㄦ剰锛氱紪鐮佷箣闂翠笉瑕佺暀绌烘牸銆� cp936瀵瑰簲浜巊bk缂栫爜銆� ucs-bom瀵瑰簲浜巜indows涓嬬殑鏂囦欢鏍煎紡銆�

璁﹙im 姝g‘澶勭悊鏂囦欢鏍煎紡鍜屾枃浠剁紪鐮侊紝鏈夎禆浜�~/.vimrc鐨勬纭厤缃�

12.3 鏂囦欢鏍煎紡

澶ц嚧鏈変笁绉嶆枃浠舵牸寮忥細unix, dos, mac. 涓夌鏍煎紡鐨勫尯鍒富瑕佸湪浜庡洖杞﹂敭鐨勭紪鐮侊細dos 涓嬫槸鍥炶溅鍔犳崲琛岋紝unix 涓嬪彧鏈� 鎹㈣绗︼紝mac 涓嬪彧鏈夊洖杞︾銆�

:e ++ff=dos filename, 璁﹙im鐢╠os鏍煎紡鎵撳紑杩欎釜鏂囦欢銆�

:w ++ff=mac filename, 浠ac鏍煎紡瀛樺偍杩欎釜鏂囦欢銆�

:set ff锛屾樉绀哄綋鍓嶆枃浠剁殑鏍煎紡銆�

鍦╲imrc涓坊鍔爏et fileformats=unix,dos,mac锛岃vim鑷姩璇嗗埆鏂囦欢鏍煎紡銆�

13. 缂栫▼杈呭姪

13.1 涓�浜涙寜閿�

gd: 璺宠浆鍒板眬閮ㄥ彉閲忕殑瀹氫箟澶勶紱

gD: 璺宠浆鍒板叏灞�鍙橀噺鐨勫畾涔夊锛屼粠褰撳墠鏂囦欢寮�澶村紑濮嬫悳绱紱

g;: 涓婁竴涓慨鏀硅繃鐨勫湴鏂癸紱

g,: 涓嬩竴涓慨鏀硅繃鐨勫湴鏂癸紱

[[: 璺宠浆鍒颁笂涓�涓嚱鏁板潡寮�濮嬶紝闇�瑕佹湁鍗曠嫭涓�琛岀殑{銆�

]]: 璺宠浆鍒颁笅涓�涓嚱鏁板潡寮�濮嬶紝闇�瑕佹湁鍗曠嫭涓�琛岀殑{銆�

[]: 璺宠浆鍒颁笂涓�涓嚱鏁板潡缁撴潫锛岄渶瑕佹湁鍗曠嫭涓�琛岀殑}銆�

][: 璺宠浆鍒颁笅涓�涓嚱鏁板潡缁撴潫锛岄渶瑕佹湁鍗曠嫭涓�琛岀殑}銆�

[{: 璺宠浆鍒板綋鍓嶅潡寮�濮嬪锛�

]}: 璺宠浆鍒板綋鍓嶅潡缁撴潫澶勶紱

[/: 璺宠浆鍒板綋鍓嶆敞閲婂潡寮�濮嬪锛�

]/: 璺宠浆鍒板綋鍓嶆敞閲婂潡缁撴潫澶勶紱

%: 涓嶄粎鑳界Щ鍔ㄥ埌鍖归厤鐨�(),{}鎴朳]涓婏紝鑰屼笖鑳藉湪#if锛�#else锛� #endif涔嬮棿璺宠穬銆�

涓嬮潰鐨勬嫭鍙峰尮閰嶅缂栫▼寰堝疄鐢ㄧ殑銆�

ci', di', yi'锛氫慨鏀广�佸壀鍒囨垨澶嶅埗'涔嬮棿鐨勫唴瀹广��

ca', da', ya'锛氫慨鏀广�佸壀鍒囨垨澶嶅埗'涔嬮棿鐨勫唴瀹癸紝鍖呭惈'銆�

ci", di", yi"锛氫慨鏀广�佸壀鍒囨垨澶嶅埗"涔嬮棿鐨勫唴瀹广��

ca", da", ya"锛氫慨鏀广�佸壀鍒囨垨澶嶅埗"涔嬮棿鐨勫唴瀹癸紝鍖呭惈"銆�

ci(, di(, yi(锛氫慨鏀广�佸壀鍒囨垨澶嶅埗()涔嬮棿鐨勫唴瀹广��

ca(, da(, ya(锛氫慨鏀广�佸壀鍒囨垨澶嶅埗()涔嬮棿鐨勫唴瀹癸紝鍖呭惈()銆�

ci[, di[, yi[锛氫慨鏀广�佸壀鍒囨垨澶嶅埗[]涔嬮棿鐨勫唴瀹广��

ca[, da[, ya[锛氫慨鏀广�佸壀鍒囨垨澶嶅埗[]涔嬮棿鐨勫唴瀹癸紝鍖呭惈[]銆�

ci{, di{, yi{锛氫慨鏀广�佸壀鍒囨垨澶嶅埗{}涔嬮棿鐨勫唴瀹广��

ca{, da{, ya{锛氫慨鏀广�佸壀鍒囨垨澶嶅埗{}涔嬮棿鐨勫唴瀹癸紝鍖呭惈{}銆�

ci<, di<, yi<锛氫慨鏀广�佸壀鍒囨垨澶嶅埗<>涔嬮棿鐨勫唴瀹广��

ca<, da<, ya<锛氫慨鏀广�佸壀鍒囨垨澶嶅埗<>涔嬮棿鐨勫唴瀹癸紝鍖呭惈<>銆�

13.2 ctags

ctags -R: 鐢熸垚tag鏂囦欢锛�-R琛ㄧず涔熶负瀛愮洰褰曚腑鐨勬枃浠剁敓鎴恡ags

:set tags=path/tags -- 鍛婅瘔ctags浣跨敤鍝釜tag鏂囦欢

:tag xyz -- 璺冲埌xyz鐨勫畾涔夊锛屾垨鑰呭皢鍏夋爣鏀惧湪xyz涓婃寜C-]锛岃繑鍥炵敤C-t

:stag xyz -- 鐢ㄥ垎鍓茬殑绐楀彛鏄剧ずxyz鐨勫畾涔夛紝鎴栬�匔-w ]锛� 濡傛灉鐢–-w n ]锛屽氨浼氭墦寮�涓�涓猲琛岄珮鐨勭獥鍙�

:ptag xyz -- 鍦ㄩ瑙堢獥鍙d腑鎵撳紑xyz鐨勫畾涔夛紝鐑敭鏄疌-w }銆�

:pclose -- 鍏抽棴棰勮绐楀彛銆傜儹閿槸C-w z銆�

:pedit abc.h -- 鍦ㄩ瑙堢獥鍙d腑缂栬緫abc.h

:psearch abc -- 鎼滅储褰撳墠鏂囦欢鍜屽綋鍓嶆枃浠秈nclude鐨勬枃浠讹紝鏄剧ず鍖呭惈abc鐨勮銆�

鏈夋椂涓�涓猼ag鍙兘鏈夊涓尮閰嶏紝濡傚嚱鏁伴噸杞斤紝涓�涓嚱鏁板悕灏变細鏈夊涓尮閰嶃�� 杩欑鎯呭喌浼氬厛璺宠浆鍒扮涓�涓尮閰嶅銆�

:[n]tnext -- 涓嬩竴[n]涓尮閰嶃��

:[n]tprev -- 涓婁竴[n]涓尮閰嶃��

:tfirst -- 绗竴涓尮閰�

:tlast -- 鏈�鍚庝竴涓尮閰�

:tselect tagname -- 鎵撳紑閫夋嫨鍒楄〃

tab閿ˉ榻�

:tag xyz -- 琛ラ綈浠yz寮�澶寸殑tag鍚嶏紝缁х画鎸塼ab閿紝浼氭樉绀哄叾浠栫殑銆�

:tag /xyz -- 浼氱敤鍚嶅瓧涓惈鏈墄yz鐨則ag鍚嶈ˉ鍏ㄣ��

13.3 cscope

cscope -Rbq: 鐢熸垚cscope.out鏂囦欢

:cs add /path/to/cscope.out /your/work/dir

:cs find c func -- 鏌ユ壘func鍦ㄥ摢浜涘湴鏂硅璋冪敤

:cw -- 鎵撳紑quickfix绐楀彛鏌ョ湅缁撴灉

13.4 gtags

Gtags缁煎悎浜哻tags鍜宑scope鐨勫姛鑳姐�� 浣跨敤Gtags涔嬪墠锛屼綘闇�瑕佸畨瑁匞NU Gtags銆� 鐒跺悗鍦ㄥ伐绋嬬洰褰曡繍琛実tags銆�

:Gtags funcname 瀹氫綅鍒� funcname 鐨勫畾涔夊銆�

:Gtags -r funcname 鏌ヨ funcname琚紩鐢ㄧ殑鍦版柟銆�

:Gtags -s symbol 瀹氫綅 symbol 鍑虹幇鐨勫湴鏂广��

:Gtags -g string Goto string 鍑虹幇鐨勫湴鏂广�� :Gtags -gi string 蹇界暐澶у皬鍐欍��

:Gtags -f filename 鏄剧ず filename 涓殑鍑芥暟鍒楄〃銆� 浣犲彲浠ョ敤 :Gtags -f % 鏄剧ず褰撳墠鏂囦欢銆�

:Gtags -P pattern 鏄剧ず璺緞涓寘鍚壒瀹氭ā寮忕殑鏂囦欢銆� 濡� :Gtags -P .h$ 鏄剧ず鎵�鏈夊ご鏂囦欢锛� :Gtags -P /vm/ 鏄剧ずvm鐩綍涓嬬殑鏂囦欢銆�

13.5 缂栬瘧

vim鎻愪緵浜�:make鏉ョ紪璇戠▼搴忥紝榛樿璋冪敤鐨勬槸make锛� 濡傛灉浣犲綋鍓嶇洰褰曚笅鏈塵akefile锛岀畝鍗曞湴:make鍗冲彲銆�

濡傛灉浣犳病鏈塵ake绋嬪簭锛屼綘鍙互閫氳繃閰嶇疆makeprg閫夐」鏉ユ洿鏀筸ake璋冪敤鐨勭▼搴忋�� 濡傛灉浣犲彧鏈変竴涓猘bc.java鏂囦欢锛屼綘鍙互杩欐牱璁剧疆锛�

set makeprg=javac\ abc.java

鐒跺悗:make鍗冲彲銆傚鏋滅▼搴忔湁閿欙紝鍙互閫氳繃quickfix绐楀彛鏌ョ湅閿欒銆� 涓嶈繃濡傛灉瑕佹纭畾浣嶉敊璇紝闇�瑕佽缃ソerrorformat锛岃vim璇嗗埆閿欒淇℃伅銆� 濡傦細

:setl efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%#

%f琛ㄧず鏂囦欢鍚嶏紝%l琛ㄧず琛屽彿锛� %m琛ㄧず閿欒淇℃伅锛屽叾瀹冪殑杩樹笉鑳界悊瑙c�� 璇峰弬鑰� :help errorformat銆�

13.6 蹇�熶慨鏀圭獥鍙�

鍏跺疄鏄痲uickfix鎻掍欢鎻愪緵鐨勫姛鑳斤紝 瀵圭紪璇戣皟璇曠▼搴忛潪甯告湁鐢� :)

:copen -- 鎵撳紑蹇�熶慨鏀圭獥鍙c��

:cclose -- 鍏抽棴蹇�熶慨鏀圭獥鍙c��

蹇�熶慨鏀圭獥鍙e湪make绋嬪簭鏃堕潪甯告湁鐢紝褰搈ake涔嬪悗锛�

:cl -- 鍦ㄥ揩閫熶慨鏀圭獥鍙d腑鍒楀嚭閿欒銆�

:cn -- 瀹氫綅鍒颁笅涓�涓敊璇��

:cp -- 瀹氫綅鍒颁笂涓�涓敊璇��

:cr -- 瀹氫綅鍒扮涓�涓敊璇��

13.7 鑷姩琛ュ叏

C-x C-s -- 鎷煎啓寤鸿銆�

C-x C-v -- 琛ュ叏vim閫夐」鍜屽懡浠ゃ��

C-x C-l -- 鏁磋琛ュ叏銆�

C-x C-f -- 鑷姩琛ュ叏鏂囦欢璺緞銆傚脊鍑鸿彍鍗曞悗锛屾寜C-f寰幆閫夋嫨锛屽綋鐒朵篃鍙互鎸� C-n鍜孋-p銆�

C-x C-p 鍜孋-x C-n -- 鐢ㄦ枃妗d腑鍑虹幇杩囩殑鍗曡瘝琛ュ叏褰撳墠鐨勮瘝銆� 鐩存帴鎸塁-p鍜孋-n涔熷彲浠ャ��

C-x C-o -- 缂栫▼鏃跺彲浠ヨˉ鍏ㄥ叧閿瓧鍜屽嚱鏁板悕鍟娿��

C-x C-i -- 鏍规嵁澶存枃浠跺唴鍏抽敭瀛楄ˉ鍏ㄣ��

C-x C-d -- 琛ュ叏瀹忓畾涔夈��

C-x C-n -- 鎸夌紦鍐插尯涓嚭鐜拌繃鐨勫叧閿瓧琛ュ叏銆� 鐩存帴鎸塁-n鎴朇-p鍗冲彲銆�

褰撳脊鍑鸿ˉ鍏ㄨ彍鍗曞悗锛�

C-p 鍚戝墠鍒囨崲鎴愬憳锛�

C-n 鍚戝悗鍒囨崲鎴愬憳锛�

C-e 閫�鍑轰笅鎷夎彍鍗曪紝骞堕��鍥炲埌鍘熸潵褰曞叆鐨勬枃瀛楋紱

C-y 閫�鍑轰笅鎷夎彍鍗曪紝骞舵帴鍙楀綋鍓嶉�夐」銆�

13.8 澶氳缂╄繘缂╁嚭

姝e父妯″紡涓嬶紝鎸変袱涓�>;鍏夋爣鎵�鍦ㄨ浼氱缉杩涖��

濡傛灉鍏堟寜浜唍锛屽啀鎸変袱涓�>;锛屽厜鏍囦互涓嬬殑n琛屼細缂╄繘銆�

瀵瑰簲鐨勶紝鎸変袱涓�<;锛屽厜鏍囨墍鍦ㄨ浼氱缉鍑恒��

濡傛灉鍦ㄧ紪杈戜唬鐮佹枃浠讹紝鍙互鐢�=杩涜璋冩暣銆�

鍦ㄥ彲瑙嗘ā寮忎笅锛岄�夋嫨瑕佽皟鏁寸殑浠g爜鍧楋紝鎸�=锛屼唬鐮佷細鎸変功鍐欒鍒欑缉鎺掑ソ銆�

鎴栬�卬 =锛岃皟鏁磏琛屼唬鐮佺殑缂╂帓銆�

13.9 鎶樺彔

zf -- 鍒涘缓鎶樺彔鐨勫懡浠わ紝鍙互鍦ㄤ竴涓彲瑙嗗尯鍩熶笂浣跨敤璇ュ懡浠わ紱

zd -- 鍒犻櫎褰撳墠琛岀殑鎶樺彔锛�

zD -- 鍒犻櫎褰撳墠琛岀殑鎶樺彔锛�

zfap -- 鎶樺彔鍏夋爣鎵�鍦ㄧ殑娈碉紱

zo -- 鎵撳紑鎶樺彔鐨勬枃鏈紱

zc -- 鏀惰捣鎶樺彔锛�

za -- 鎵撳紑/鍏抽棴褰撳墠鎶樺彔锛�

zr -- 鎵撳紑宓屽鐨勬姌琛岋紱

zm -- 鏀惰捣宓屽鐨勬姌琛岋紱

zR (zO) -- 鎵撳紑鎵�鏈夋姌琛岋紱

zM (zC) -- 鏀惰捣鎵�鏈夋姌琛岋紱

zj -- 璺冲埌涓嬩竴涓姌鍙犲锛�

zk -- 璺冲埌涓婁竴涓姌鍙犲锛�

zi -- enable/disable fold;

14. 鍛戒护琛�

normal妯″紡涓嬫寜:杩涘叆鍛戒护琛屾ā寮�

14.1 鍛戒护琛屾ā寮忎笅鐨勫揩鎹烽敭锛�

涓婁笅鏂瑰悜閿細涓婁竴鏉℃垨鑰呬笅涓�鏉″懡浠ゃ�傚鏋滃凡缁忚緭鍏ヤ簡閮ㄥ垎鍛戒护锛屽垯鎵句笂涓� 鏉℃垨鑰呬笅涓�鏉″尮閰嶇殑鍛戒护銆�

宸﹀彸鏂瑰悜閿細宸�/鍙崇Щ涓�涓瓧绗︺��

C-w锛� 鍚戝墠鍒犻櫎涓�涓崟璇嶃��

C-h锛� 鍚戝墠鍒犻櫎涓�涓瓧绗︼紝绛夊悓浜嶣ackspace銆�

C-u锛� 浠庡綋鍓嶄綅缃Щ鍔ㄥ埌鍛戒护琛屽紑澶淬��

C-b锛� 绉诲姩鍒板懡浠よ寮�澶淬��

C-e锛� 绉诲姩鍒板懡浠よ鏈熬銆�

Shift-Left锛� 宸︾Щ涓�涓崟璇嶃��

Shift-Right锛� 鍙崇Щ涓�涓崟璇嶃��

@锛� 閲嶅涓婁竴娆$殑鍐掑彿鍛戒护銆�

q锛� 姝e父妯″紡涓嬶紝q鐒跺悗鎸�':'锛屾墦寮�鍛戒护琛屽巻鍙茬紦鍐插尯锛� 鍙互鍍忕紪杈戞枃浠朵竴鏍风紪杈戝懡浠ゃ��

q/鍜宷? 鍙互鎵撳紑鏌ユ壘鍘嗗彶璁板綍銆�

14.2 鎵ц澶栭儴鍛戒护

:! cmd 鎵ц澶栭儴鍛戒护銆�

:!! 鎵ц涓婁竴娆$殑澶栭儴鍛戒护銆�

:sh 璋冪敤shell锛岀敤exit杩斿洖vim銆�

:r !cmd 灏嗗懡浠ょ殑杩斿洖缁撴灉鎻掑叆鏂囦欢褰撳墠浣嶇疆銆�

:m,nw !cmd 灏嗘枃浠剁殑m琛屽埌n琛屼箣闂寸殑鍐呭鍋氫负鍛戒护杈撳叆鎵ц鍛戒护銆�

15. 鍏跺畠

15.1 宸ヤ綔鐩綍

:pwd 鏄剧ずvim鐨勫伐浣滅洰褰曘��

:cd path 鏀瑰彉vim鐨勫伐浣滅洰褰曘��

:set autochdir 鍙互璁﹙im 鏍规嵁缂栬緫鐨勬枃浠惰嚜鍔ㄥ垏鎹㈠伐浣滅洰褰曘��

15.2 涓�浜涘揩鎹烽敭锛堟敹闆嗕腑锛�

K: 鎵撳紑鍏夋爣鎵�鍦ㄨ瘝鐨刴anpage銆�

*: 鍚戜笅鎼滅储鍏夋爣鎵�鍦ㄨ瘝銆�

g*: 鍚屼笂锛屼絾閮ㄥ垎绗﹀悎鍗冲彲銆�

#: 鍚戜笂鎼滅储鍏夋爣鎵�鍦ㄨ瘝銆�

g#: 鍚屼笂锛屼絾閮ㄥ垎绗﹀悎鍗冲彲銆�

g C-g: 缁熻鍏ㄦ枃鎴栫粺璁¢儴鍒嗙殑瀛楁暟銆�

15.3 鍦ㄧ嚎甯姪

:h(elp)鎴朏1 鎵撳紑鎬荤殑甯姪銆�

:help user-manual 鎵撳紑鐢ㄦ埛鎵嬪唽銆�

鍛戒护甯姪鐨勬牸寮忎负锛氱涓�琛屾寚鏄庢�庝箞浣跨敤閭d釜鍛戒护锛� 鐒跺悗鏄缉杩涚殑涓�娈佃В閲婅繖涓懡浠ょ殑浣滅敤锛岀劧鍚庢槸杩涗竴姝ョ殑淇℃伅銆�

:helptags somepath 涓簊omepath涓殑鏂囨。鐢熸垚绱㈠紩銆�

:helpgrep 鍙互鎼滅储鏁翠釜甯姪鏂囨。锛屽尮閰嶇殑鍒楄〃鏄剧ず鍦╭uickfix绐楀彛涓��

Ctrl+] 璺宠浆鍒皌ag涓婚锛孋trl+t 璺冲洖銆�

:ver 鏄剧ず鐗堟湰淇℃伅銆�

15.4 涓�浜涘皬鍔熻兘

绠�鍗曡绠楀櫒: 鍦ㄦ彃鍏ユā寮忎笅锛岃緭鍏-r =锛岀劧鍚庤緭鍏ヨ〃杈惧紡锛屽氨鑳藉湪 鍏夋爣澶勫緱鍒拌绠楃粨鏋溿��

你可能感兴趣的:(vi鍛戒护)