第一次用 Vim 就上手

前言

這篇是先貼在系上 BBS 的文章,主要對象是天真無邪的學弟妹們XD 所以太愚蠢的部份,還有排版太差的部份,就抱歉了orz

簡介

標題是騙人的,第一次用 Vim 怎麼可能上手XDDDDD
只是看到有學弟在講,就順便寫一下。我覺得一開始雖然會什麼都不懂,摸不著頭緒,但是在 Vim 裡面要先有基本生存能力,就像學武先學內功一樣~這篇文章就是要講基本的生存能力…..

用 Vim 開啟檔名為 FILENAME 的檔案

$ vim FILENAME  

移動

h (左), j (下), k (上), l (右)

我知道這很奇怪,但是請聽我說完…首先把你的手「正常的」放在鍵盤上…也就是雙手食指分別在 F 跟 J。通常這兩個按鍵會有一些幫助你定位的設計,常見的作法是有個凸點。接著忘記你的左手的存在,你的右手應該會微微的像 \ 這樣傾斜。
不要亂動!!!這個時候,你的食指應該比中指更接近自己,這也就是 Vim 裡面上跟下分別是中指跟食指…呃不是啦 是 kj 的原因…至於左右呢?啊就左右嘛= =a

輸入

先學著用 ia 吧。一個是 insert,一個是 append。這兩個用久了就會變成直覺了。熟了之後再學著用 IA 吧。如果 ia 很直覺,IA 就會很簡單了。(其他的以後再說沒關係)

回到 Normal Mode

如果有看過其他文章,應該會知道 Vim 有 3 種以上的「mode」。我們不用管這麼多,只要記得「狂按 Esc 就會回到 normal mode」就好。手賤多按幾下沒關係,電腦不會爆炸。噢,你說其他的 mode 喔?先不用記啦,反正你自然就會進去了…

編修檔案

有一個很簡單的原則(但是偶爾有例外):先按數字(假設是 n)再按指令,相當於做那個指令 n 次。我們待會會說明~記得很簡單的幾個就好了。首先,我們來背單字….

delete - 刪除
yank - 用力拉
paste - 貼上
undo - 復原

好了背完了….來看看指令….

dd - 刪除一整行
yy - 複製一整行
p - 貼上
u - 復原

很簡單對不對?相信大家都覺得這實在腦殘的不得了…..不過在腦殘的同時,不曉得有沒有發現我講了複製、貼上,但是沒有講剪下?我承認我剛剛說謊….其實 dd 是剪下才對…..(ninja) 只不過剪下跟刪除本來就可以同一件事啦,呵呵呵呵呵呵呵呵~

存檔離開

我們再來背一次單字….

write - 寫
quit - 自殺…呃不是啦,是離開

所以說存檔跟離開的指令就記這4個吧….

:w - 存檔
:wq - 存檔然後離開
:q - 不存檔直接離開….但是如果檔案有改過的話 他會跳出錯誤說…「留下來,或者我跟你走。」 這時候只好嗆聲….
:q! - 我他X的就是要離開!

經過了以上的一大串廢話之後…..我們再來一小串廢話。以上部分除了背單字以外,剩下的都可以「直接在 normal mode 按」!記得前面有冒號的也別忘了唷^.< 冒號開頭的,最後配上enter服用…

範例練習

(就是你照著作就對了)

首先說明一些事情…

  • $ 開頭的,就是在一般命令列要打的,打完要按 Enter 送出
  • : 開頭的,是在 Vim 的 Esc 按到死 mode 裡面按下 : 之後出現的那個冒號…
  • # 開頭的,一直到行尾表示註解(說明文字)
  • 英文或數字開頭的,那應該就是直接在 Vim 裡面照著按了….別把 Esc 分開按就好了XD

(範例開始)

$ cd #為了避免奇怪的事情 我們先回到家目錄  
$ dmesg > vim_practice #建立一個練習用的檔案 檔名再衝突我也沒辦法了  
$ vim vim_practice #用 vim 打開檔案  

# 我們在vim裡面囉~~  
jjjjjjjjjjjjjjjjjjjj #對 你就先把j按著 練習往下移動  
kkkkkkkkkkkkkkkkkkkk #然後把k按著 練習往上移動  
jjjjjjjjjjjjjjjjjjjj #不要覺得這很蠢  
kkkkkkkkkkkkkkkkkkkk #多試幾次就會很順 記得手要放對位置唷~  
jjjjj #挑一行順眼的 有很多字的行  
llllllllllllllllllll #對啦就是往右移動
hhhhhhhhhhhhhhhhhhhh #然後往左移動
llllllllllllllllllll #往右  
hhhhhhhhhhhhhhhhhhhh #往左  

#獎勵自己把蠢事做完 可以上個PTT之類的...  
#剛好ptt閱讀文章的時候也可以用kj當做上下移動.....  

#回到vim  
i1234567890 #直接照著按應該會看到插入了一串1234567890在裡面吧  
esc #回normal mode  
a1234567890 #跟i有一點點差別...一點點...一點點....  
esc  

#一定很多人會想要在打字的時候移動游標對不對?暫時改掉這個習慣吧  
#以後再加回來也不遲...先練習使用normal mode下的hjkl移動~  

#一直待在normal mode底下就好了  
dd #你游標所在的那行就被刪除了  
jjjjjjjjjjjjj #隨便移動一下  
p #剛剛刪除的那行貼上去了!!!  
u #剛剛貼上去的那行不見了!!!  
10p #對 就照著按[1]-[0]-[p]這3個按鍵...你應該看到了  
jjjjjjjjjjjjjjjj #再隨便移動一下  
5yy #你其實已經複製5行字了...  
p #貼上去  

#你可以隨意玩玩看 或是參考最後面的隨手亂寫  

#準備存檔離開  
esc, esc, esc, ... #反正就是回到normal mode....  
:wq <enter>#這樣就存檔離開了  

我敢打賭看到這裡而且照做的人一定會很想揍我,而且會說 Vim 真他x的難用。事實上,只會這些東西的話,Vim 還真的很他x的難用…..但這些只是基本技巧而已,先有基本能力之後,再去懂得怎麼「聰明一點」吧:D

上面廢話很多,為了體貼直接按 End 的人,這裡整理一下第一次使用 Vim 要會的東西:

  • 命令列下,vim 後面接上檔名就可以編輯檔案
  • 手指頭放在鍵盤上,右手就可以控制游標移動了(什麼 hjkl 不要記啦)
  • i(insert)跟a(append)用來輸入文字
  • Esc 按到爆就會回到 normal mode
  • dd, yy, p, u 分別是剪下、複製、貼上、復原
  • :w, :wq, :q, :q! 其中的 w, q, ! 分別表示寫入、離開、強制執行

這裡隨手亂寫一些東西,有興趣可以照著按。每行為一個單位,大小寫有差。

20i8<esc>  
G  
20G  
gg  
d10G  
vllllllllllllld  
:set nu  
:set nonu

就先這樣吧@@


Last modified on 2011-03-05