Vim實戰指南(一):基礎編輯命令

原文地址:Vim實戰指南(一):基礎編輯命令git

Introduction

VimEmacs做爲兩大神級文本編輯器各有利弊,本實戰指南不加討論的介紹Vim.
本實戰指南不是教你按照Vim的鍵位圖來編輯文本,而是從實戰的角度,教你如何快速的用Vim來開發你的程序,節省你的開發時間。
爲何不用IDE?IDE當然強大,但並非每個環境都有現成的IDE可用,尤爲是SSH遠程計算機,就一個bash解析器可使用,徹底沒有圖形化界面。IDE的另外一個弊端就是須要反覆的安裝升級更新。
固然IDE也有省事的時候,例如開發Java和C#,IDE自帶的debug調試工具,能夠很是便利的調試程序。
可是在類Unix系統上開發,我仍是推薦學習熟練地使用Vim。何爲熟練?徹底捨棄你的鼠標,只使用鍵盤快速的進行開發即爲熟練。
介紹Vim(全稱是vi improved)以前,天然首先要從vi(全稱是visual editor)開始。
對於初學者來講,vi的學習曲線可能比較陡峭。vi分爲插入模式(insert mode)以及命令行模式(command mode)。bash

vi

在Unix/Linux的bash下,輸入vi來編輯文本。注意,當你使用vi修改文本時,並非真正的修改了存放在磁盤上的文件,而是修改了該文件在內存中的拷貝副本。只有當你顯示的保存文件時,該內存中的副本纔會被寫入磁盤,並覆蓋文件。app

$ vi testfile

Command Mode

在命令行模式下,vi的經常使用命令能夠按如下方式速記:編輯器

編輯類

i: insert,進入插入模式,新字符插入在光標前
a: append,進入編輯模式,新字符插入在光標後
c: change,修改
d: delete,刪除
p: put,放置,能夠將d刪除的內容,放置在光標後面
y: yank,拷貝
r: replace,替換,和c不一樣在於,沒必要進入編輯模式便可替換
s: substitute,替代,和c不一樣在於,能夠只修改一個字符而非整個字
x: x,和d不一樣在於,能夠只刪除一個字符而非整個字
~: change case,替換大小寫
.: repeat,重複上一條命令
u: undo,撤銷上一條命令
J: join,將兩行合併爲一行工具

保存退出類

q: quit,退出,若是有未保存的修改則沒法退出
q!: force quit,強制退出
w: write edits to disk (save file),保存文件
w!: force write,強制保存
ZZ: quit and save edits,保存文件並退出
e!: revert your changes,回滾全部修改至原始狀態學習

移動光標類

h: left,向左移動光標
j: down,向下移動光標
k: up,向下移動光標
l: right,向由移動光標
0: digit zero, move to beginning of line,移動到行首
$: move to end of line,移動到行尾
w: move by word,按字向後移動光標(包括標點)
W: move by large word,按字向後移動光標(忽略標點)
b: move backward by word,按字向前移動光標(包括標點)
B: move backward by large word,按字向前移動光標(忽略標點)
e: move to end of word,移動到字尾(包括標點)
E: move to large end of word,移動到字尾(忽略標點)
G: go to end of the file,移動到文件末尾最後一行ui

記住,vi對於命令區分大小寫,I和i不是同一個命令。vi的命令不會顯示在屏幕上,每個命令後面不須要敲擊回車(Enter)。
當你不知道你處於哪一個模式下時,連續按3下Esc總能讓你回到命令行模式。命令行

組合命令

vi的便捷性在於你能夠組合命令,經過數字+字母,或者字母+字母,甚至數字+字母+字母,能夠將單命令構造出你想操做的組合命令debug

3h: 3 left,向左移動3次光標,等同於lll
3W: 3 move by large word,按3個字向後移動光標(忽略標點等)
1G: go to line 1,移動到文件首行
3G: go to line 3,移動到文件第三行
cw: change, move by word,修改後面的一個字
c3b: change, move backward by 3 words,修改前面的三個字
c$: change, move to end of line,修改光標後面整行文字
c0: change, move to beginning of line,修改光標以前整行文字
dw: delete word,刪除字
d3w: delete 3 words,刪除三個字
3p: put 3 times,重複放置3次3d

甚至你能夠重複組合

cc: change line,修改整行
dd: delete line,刪除整行
3dd: delete 3 line,刪除三行
yy: yank line,拷貝整行

Summary

上述的基本命令必定要熟記於心,增強練習。不要以爲命令太多,仔細研究會發現命令之間有規律可循。只須要記住幾個基礎命令,經過場景構造即可以獲得組合命令,這也是vi的便利以及魅力所在。

相關文章
相關標籤/搜索