Vim編輯器入門

本文轉(zhuǎn)載自:簡(jiǎn)書作者 IstvanShaw 的文章 Vim編輯器入門


我們常說(shuō):Linux中一切都是文件。因此使用文本編輯器編輯配置文件參數(shù)是一鍵非常重要的事情根竿,而最為廣大用戶熟知的文本編輯器非vim莫屬截碴;今天我們就來(lái)簡(jiǎn)單了解一下vim文本編輯器的使用憔辫。

一、vi與vim

在學(xué)習(xí)vim的使用之前金顿,我們需要介紹一下vi文本編輯器:

  • 所有類UNIX系統(tǒng)都會(huì)內(nèi)置vi文本編輯器臊泌;
  • 很多軟件的編輯接口會(huì)調(diào)用vi,比如之前介紹過(guò)的 crontab 揍拆;

上述兩個(gè)特點(diǎn)造就了可以成為vi高級(jí)版的vim如今地位渠概。vim與vi最大的不同在于其語(yǔ)法高亮功能,該點(diǎn)使其不僅是一個(gè)文本編輯器嫂拴,更是程序開(kāi)發(fā)工具播揪。

二、vi的使用

  1. 讓vi或者vim如此受歡迎的主要原因筒狠,在于其三種模式:
  • 一般模式
    打開(kāi)一個(gè)文件就進(jìn)入該模式猪狈;該模式中可以移動(dòng)光標(biāo)、對(duì)文本進(jìn)行 復(fù)制 粘貼 刪除 查找 等操作窟蓝;


  • 編輯模式
    一般模式下罪裹,按 a,i,o 鍵可以進(jìn)入( a 鍵 與 i 鍵分別是在光標(biāo)后面一位和當(dāng)前位置切換到編輯模式饱普,而 o 鍵則是在光標(biāo)的下面再創(chuàng)建一個(gè)空行运挫,此時(shí)可敲擊 a 鍵進(jìn)入編輯模式);該模式中可以對(duì)文件文本進(jìn)行編輯套耕,按 Esc 鍵回到一般模式谁帕;
  • 命令行模式
    一般模式下,輸入以 :,/,? 開(kāi)頭的命令進(jìn)入冯袍;該模式中光標(biāo)在屏幕最下一行匈挖,可以輸入一些對(duì)文件操作的命令,按 Esc 鍵回到一般模式康愤;

    ps:一般模式和編輯模式儡循、一般模式和命令行模式之間可以互相切換,但是編輯模式和命令行模式之間無(wú)法互相切換征冷。
  1. 一般模式和編輯模式常用快捷鍵
快捷鍵 說(shuō)明
h择膝、 光標(biāo)向左移動(dòng)一個(gè)字符
j 光標(biāo)向下移動(dòng)一行
k检激、 光標(biāo)向上移動(dòng)一行
l肴捉、 光標(biāo)向右移動(dòng)一個(gè)字符
Ctrl+fPageDown 向下翻頁(yè)
Ctrl+b叔收、PageUp 向上翻頁(yè)
0齿穗、Home 光標(biāo)移動(dòng)到所在行最前字符
$End 光標(biāo)移動(dòng)到所在行最后字符
G 光標(biāo)移動(dòng)到該文件最后一行
gg 光標(biāo)移動(dòng)到該文件第一行
X饺律、Backspace 刪除光標(biāo)前一個(gè)字符
x窃页、Del 刪除光標(biāo)后一個(gè)字符
[rownum]Enter 光標(biāo)向下移動(dòng) [rownum]
dd 刪除(剪切)光標(biāo)所在行
[rownum]dd 刪除(剪切)從光標(biāo)處開(kāi)始的 [rownum]
yy 復(fù)制光標(biāo)所在行
[rownum]yy 復(fù)制光標(biāo)處開(kāi)始的 [rownum]
n 顯示搜索的下一個(gè)字符串
N 顯示搜索的上一個(gè)字符串
u 撤銷
.Ctrl+r 重復(fù)上一個(gè)操作
p 粘貼前剪切或復(fù)制的內(nèi)容
  1. 命令行模式常用命令
命令 說(shuō)明
:w 保存
:q 退出
:q! 放棄修改強(qiáng)制退出
:wq! 強(qiáng)制保存退出
:set nu 顯示行號(hào)
:set nonu 隱藏行號(hào)
:[rownum] 跳轉(zhuǎn)到 [rownum]
:s/[str1]/[str2] 將當(dāng)前行第一個(gè) [str1] 替換為 [str2]
:s/[str1]/[str2]/g 將當(dāng)前行所有 [str1] 替換為 [str2]
:%s/[str1]/[str2]/g 將全文所有 [str1] 替換為 [str2]
?[str] 搜索 [str]
/[str] 反向搜索 [str]
:set nu 顯示行號(hào)

三、vim的功能

  1. vim的保存文件腮出、恢復(fù)與打開(kāi)時(shí)的警告信息
    當(dāng)我們?cè)谑褂胿im編輯文件時(shí)帖鸦,vim會(huì)把我們進(jìn)行的操作保存在以編輯文件名加.swp命名的隱藏臨時(shí)文件中;
    當(dāng)遇到其他用戶在編輯同一個(gè)文件或者其他未知的原因?qū)е聉im崩潰后胚嘲,我們可以使用這個(gè)臨時(shí)文件恢復(fù)之前進(jìn)行的操作作儿;
  • 新建一個(gè)名為 xdltestvim.json 的文件,使用 Ctrl+z 快捷鍵使vim在后臺(tái)運(yùn)行
vim xdltestvim.json
  • 使用 ls -al 命令查看當(dāng)前文件夾信息馋劈,可以看到名為 .xdltestvim.json.swp 隱藏臨時(shí)文件

  • 當(dāng)我們嘗試?yán)^續(xù)編輯 xdltestvim.json 這個(gè)文件時(shí)攻锰,會(huì)出現(xiàn)提示:



    并給出5個(gè)操作項(xiàng):

操作項(xiàng) 說(shuō)明
[O]pen Read-Only 只讀模式打開(kāi)文件
[E]dit anyway 正常模式打開(kāi),不使用之前臨時(shí)保存的操作妓雾,會(huì)改變之前的操作
[R]ecover 恢復(fù)之前的操作娶吞,完成后需要手動(dòng)刪除隱藏臨時(shí)文件
[Q]uit 退出
[A]bort 忽略,類似于 [Q]uit

根據(jù)給定的操作快捷鍵可進(jìn)行對(duì)應(yīng)的操作械姻。

  1. 塊選擇
    vim一般模式和編輯模式下可以使用快捷鍵進(jìn)行文本的塊選擇:
  • v 字符選擇移袍,選擇從按下 v 開(kāi)始到當(dāng)前光標(biāo)位置的字符:

  • V 行選擇,選擇從按下 V 開(kāi)始到當(dāng)前光標(biāo)位置的行:

  • Ctrl+v 矩形選擇盟猖,選擇從按下 Ctrl+v 開(kāi)始到當(dāng)前光標(biāo)位置所畫出矩形框內(nèi)的字符:

文本選擇之后俩块,可以使用之前介紹的 yd欢揖、p 快捷鍵進(jìn)行復(fù)制陶耍、刪除、粘貼她混。

  1. 多文件編輯
    當(dāng)我們想要把一個(gè)文件中的文本復(fù)制到另一個(gè)文件中時(shí)烈钞,就可以使用vim的多文件編輯功能;
命令 說(shuō)明
vim [file1] [file2] 同時(shí)編輯文件 [file1][file2]
:files 查看當(dāng)前正在編輯的文件
:n 切換到編輯下一個(gè)文件
:N 切換到編輯上一個(gè)文件
:files 查看當(dāng)前正在編輯的文件
  1. 多窗口功能
    在vim命令行模式下使用 :sp [filename] 命令在同時(shí)以多個(gè)窗口中打開(kāi)多個(gè)文件坤按;

多窗口功能常用快捷鍵:

快捷鍵 說(shuō)明
Ctrl+w j毯欣、Ctrl+w ↓ 切換到下一個(gè)窗口
Ctrl+w kCtrl+w ↑ 切換到上一個(gè)窗口
Ctrl+w q 關(guān)閉下一個(gè)窗口臭脓,等同于先切換到下一個(gè)窗口再使用 :q 關(guān)閉
  1. vim常用命令示意圖

圖片轉(zhuǎn)自 deniro_li 的CSDN文章 vim 常用指令操作示意圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酗钞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谢鹊,更是在濱河造成了極大的恐慌算吩,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佃扼,死亡現(xiàn)場(chǎng)離奇詭異偎巢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)兼耀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門压昼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)求冷,“玉大人,你說(shuō)我怎么就攤上這事窍霞〗程猓” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵但金,是天一觀的道長(zhǎng)韭山。 經(jīng)常有香客問(wèn)我,道長(zhǎng)冷溃,這世上最難降的妖魔是什么钱磅? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮似枕,結(jié)果婚禮上盖淡,老公的妹妹穿的比我還像新娘。我一直安慰自己凿歼,他們只是感情好褪迟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著答憔,像睡著了一般味赃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上攀唯,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天洁桌,我揣著相機(jī)與錄音渴丸,去河邊找鬼侯嘀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谱轨,可吹牛的內(nèi)容都是我干的戒幔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼土童,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诗茎!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起献汗,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤敢订,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后罢吃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體楚午,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年尿招,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矾柜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阱驾。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怪蔑,靈堂內(nèi)的尸體忽然破棺而出里覆,到底是詐尸還是另有隱情,我是刑警寧澤缆瓣,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布喧枷,位于F島的核電站,受9級(jí)特大地震影響弓坞,放射性物質(zhì)發(fā)生泄漏割去。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一昼丑、第九天 我趴在偏房一處隱蔽的房頂上張望呻逆。 院中可真熱鬧,春花似錦菩帝、人聲如沸咖城。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宜雀。三九已至,卻和暖如春握础,著一層夾襖步出監(jiān)牢的瞬間辐董,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工禀综, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留简烘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓定枷,卻偏偏與公主長(zhǎng)得像孤澎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欠窒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容