網頁

2011年3月5日 星期六

第一次用vim就上手

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

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


用vim開啟檔名為FILENAME的檔案
$ vim FILENAME

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

輸入
先學著用i跟a吧 一個是insert 一個是append 這兩個久了就會變成直覺了
熟了之後再學著用I跟A吧 如果i跟a很直覺 I跟A就會很簡單了
(其他的以後再說沒關係)

回到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 #這樣就存檔離開了


我敢打賭看到這裡而且照做的人一定會很想揍我 而且會說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
G
20G
gg
d10G
vllllllllllllld
:set nu
:set nonu

就先這樣吧@@

沒有留言:

張貼留言