vim使用入門

Vim是一款極其強(qiáng)大的編輯器,因其代碼補(bǔ)全、編譯及錯誤跳轉(zhuǎn)等方便編程的功能而受到廣大程序員的青睞。然而vim極其陡峭的學(xué)習(xí)曲線讓許多第一次接觸它的人望而卻步。開始學(xué)習(xí)vim時往往會覺得痛苦,但是在掌握一些基本操作后,通過不斷的練習(xí),編輯的效率會得到大幅度的提升。下面本文將介紹一些vim的基本操作。

vim的幾種模式

  1. 命令行模式
    這是剛打開vim的時候進(jìn)入的模式,在此模式之下,可以輸入會被解釋與執(zhí)行的命令。
  2. 插入模式
    在此模式之下,大部分鍵盤輸入被作為文本插入。
  3. 可視化模式
    可視化模式可以通過移動命令選中字符、行或一塊文本,被選中的部分會高亮顯示。當(dāng)執(zhí)行一個非移動命令時,命令會被執(zhí)行到整個高亮區(qū)域。
  4. 幾種模式的轉(zhuǎn)換
  • 從命令行模式到插入模式
i  在當(dāng)前位置之前插入
a  在當(dāng)前位置之后插入(追加)
I  調(diào)到當(dāng)前行第一個非空白字符之前插入
A  調(diào)到當(dāng)前行最后一個字符之后插入
  • 從命令行模式到可視模式
 v  切換到可視模式(字符級別)
 V  切換到可視模式(行級別)
 ctrl-v  切換到塊可視模式(塊級別的)

按ESC可以退出插入模式或可視模式,回到命令行模式。

vim的基本命令

  • 移動
    在上一小節(jié)已經(jīng)介紹了如何從命令行模式轉(zhuǎn)為插入模式,并通過i,aI,A這幾個命令輸入文本。而如何在文本中進(jìn)行移動,有如下命令:
//基礎(chǔ)命令
h  左移
l  右移
k  上移
j  下移 (像一個向下的鉤子)
或者使用方向鍵的上下左右
//進(jìn)階命令
0  移動至當(dāng)前行第一列
^  當(dāng)前行第一個非空白字符
w  移到下一個單詞(第一個字符之前)
W  移到下一個單詞,忽略標(biāo)點
e  移動到單詞尾部(最后一個字符之前)
E  移動到單詞尾部,忽略標(biāo)點
b  移動到單詞開頭
B  移動到單詞開頭,忽略標(biāo)點
ge  移動到前一個詞尾部
gE  移動到前一個詞尾部,忽略標(biāo)點
g_  移動到最后一個非空白字符
$  移動到最后一列(最后一個字符之前)
  • 編輯(增、刪、改、查)
//增
o  在光標(biāo)所在行的下方打開新的行
O  在光標(biāo)所在行的上方打開新的行
//刪
d  刪除當(dāng)前光標(biāo)位置到下一個命令所指定的位置之間的所有字符,并將刪除的內(nèi)容存到剪貼板里(例如: dw刪除當(dāng)前行光標(biāo)位置到后一個單詞間的所有字符)
dd  刪除當(dāng)前行
x  刪除光標(biāo)位置字符
X  刪除光標(biāo)之前的字符(相當(dāng)于回退)
//改
y  拷貝
p  在當(dāng)前光標(biāo)之后黏貼拷貝的內(nèi)容
P  在當(dāng)前光標(biāo)之前黏貼拷貝的內(nèi)容
c  修改當(dāng)前光標(biāo)位置到下一個命令所指定的位置之間的所有字符(例如:c$刪除當(dāng)前行光標(biāo)位置到當(dāng)前行末的之間的所有字符,同時進(jìn)入插入模式)
r  替換當(dāng)前字符
R  連續(xù)替換多個字符
:r filename  向當(dāng)前文件中插入另外文件的內(nèi)容
:s/old/new  替換光標(biāo)所在行第一個匹配字符串
:s/old/new/g  替換光標(biāo)所在行所有匹配字符串
:#,#s/old/new/g  替換兩行間所有匹配字符串,#表示兩個行號
:%s/old/new/g  替換整個文件中所有匹配字符串
:%s/old/new/gc  找到整個文件中所有匹配字符串,并詢問是否替換
s  用輸入替換當(dāng)前位置到下一個命令給出位置的字符
//查
/pattern  查找(高亮) pattern 的字符串
%  查找配對的括號)、]、}
* 和 #  匹配光標(biāo)當(dāng)前所在的單詞,移動光標(biāo)到下一個(或上一個)匹配單詞(*是下一個,#是上一個)
:set ic  查找的時候忽略大小寫
:set hls  高亮顯示所有匹配短語
:set is  查找短語時顯示部分匹配
  • 其他基本操作
//打開/保存/退出
:e <path/to/file>  打開文件
:w  存盤
:saveas<path/to/file>  文件另存為
:x,ZZ 或 :wq  保存并退出 (:x 表示僅在需要時保存,ZZ不需要輸入冒號并回車)
:q!  退出不保存 
:qa!  強(qiáng)行退出所有的正在編輯的文件,就算別的文件有更改。
:bn 和 :bp  在多個打開的文件中做上下切換。
//可視模式下(ctrl+v)
J  把所有的行連接起來(變成一行)
< 或 >  左右縮進(jìn)
=  自動縮進(jìn) 
//分屏
:split  創(chuàng)建分屏 
:vsplit  創(chuàng)建垂直分屏
<ctrl-w><dir>  dir表示方向,可以是 hjkl 或是 ←↓↑→ ,用來切換分屏。
<ctrl-w>_(或 <ctrl-w>|)  最大化尺寸
<ctrl-w>+ (或<ctrl-w>-)  增加尺寸
//其它
N command  重復(fù)一個命令N次
.  重復(fù)上一個命令
:help  使用在線幫助系統(tǒng)
<ctrl-D>和<TAB>  可以進(jìn)行命令行補(bǔ)全 

小結(jié)

以上介紹的是vim的一些基本操作,基本覆蓋了大多數(shù)常用命令。而為了讓vim強(qiáng)大的特性和功能得到充分的發(fā)揮,通??梢酝ㄟ^配置vimrc文件來實現(xiàn),本文僅介紹一些基礎(chǔ)操作,不做展開。
總而言之,vim是一款強(qiáng)大的編輯器,但它的優(yōu)點要等到熟練掌握它之后才會顯現(xiàn)。學(xué)習(xí)vim需要記住大量的命令,可以通過vimtutor來進(jìn)行練習(xí),常用便能長記。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容