Vim简本
參考鏈接:http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
本文將更簡化,只保留其中的精華部分。
Level One —— Survive
♦鍵入i進入Insert模式;輸入ESC返回Normal模式。
♦x↘刪除光標下的字符。
♦:wq↘ 保存并退出,其中w為保存(write),而q為退出(quit)。
♦dd↘ 刪除并復制當前行。
♦p↘ 復制(Paste)。
♦hjkl↘ 左下上右,移動光標。j看起來像一個向下的箭頭。
♦:help <command>↘ 顯示關于該命令的幫助。使用:q退出。
Level Two —— Feel comfortable
① 更多插入模式
♦a↘ 在光標之后插入。
♦o↘ 在當前行后插入新行。
♦O↘ 在當前行前插入新行。
♦cw↘ 替換光標當前位置到當前單詞末尾的內容。
| Change | Delete | Yank(Copy) | |
| Line | cc | dd | yy |
| Letter | cl | dl | yl |
| Word | cw | dw | yw |
② 光標的基本移動命令
♦0↘ 這里是零,移動光標到第一列。
♦^↘ 移動光標到當前行第一個非空字符。
♦$↘ 移動光標到當前行行尾。
♦g_↘ 移動光標到當前行最后一個非空字符。
♦/pattern↘ 按pattern向后進行搜索。
♦?pattern↘ 按pattern向前進行搜索。
③ 拷貝與復制
♦p↘ 小p,在當前位置后插入。
♦P↘ 大p,在當前位置前插入。
♦yy↘ 拷貝當前行,等價于ddP。
④撤消與重做
♦u↘ 撤消(undo)。
♦Ctrl+r↘ 重做(redo)::
⑤加載/保存/退出/改變文件(Buffer緩沖區)
♦:e <path to file>↘ 打開文件。
♦:w↘ 保存文件。
♦:saveas <path to file>↘ 保存當前文件到<path to file>中。
♦:x,ZZ或:wq↘ 保存并退出(:x僅在需要時保存,而ZZ則不需要輸入冒號)。
♦:q!↘ 退出但不保存。
♦:qa!↘ 無論文件是否正在編輯(修改還在Buffer中),都強制退出。
♦:bn (:bp)↘ 當打開多個文件時,使用這兩個命令切換至下一個或上一個文件。
Level Three —— Better & Stronger & Faster
①Better
♦.↘ (dot) 重復最后一條執行的命令。
♦N.↘ 重復最后一條命令N次。
♦N<command>↘ 重復該命令N次。
♦Ndd↘ 刪除N行。
♦Np↘ 粘貼N次。
♦Nidesu [ESC]↘ 寫"desu“N次。
②Stonger
♦NG↘ 跳轉到第N行。
♦gg↘ 它是1G的縮寫,跳轉到文件的初始位置。
♦G↘ 跳轉到最后一行。
默認時,單詞由字母和下劃符。
♦w↘ 跳轉到接下來單詞的開始位置。
♦e↘ 跳轉到當前單詞的結束位置。
假設你認為單詞是有blank字符作為分隔符,那么你需要使用大寫的E和W(編程的時候用)。
♦W↘ 在新規則下,跳轉到接下來單詞的開始位置。
♦E↘ 在新規則下,跳轉到當前單詞的結束位置。
♦%↘ 跳轉到對應的(,{,[。
♦*和#↘ 匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)。
③Faster
Vim中大多數命令都可以以下邊的格式來使用:
<start position><command><end position>
For example:
♦0y$↘跳轉到當前行的起始位置,從當前位置復制到當前行的結束。
♦ye↘ 從當前位置復制到當前行末尾。
♦y2/foo↘ 從當前位置復制到第2個出現的”foo“。
同理,由y可以推理到d(刪除)和v(虛擬選擇),以及gU(大寫化)和gu(小寫化)。
Level 4 —— Vim Superpowers
①當前行上的光標移動
♦0↘ 將光標移動到第一列。
♦^ ↘ 將光標移動到當前行的第一個字符上。
♦ $ ↘ 將光標移動到當最后一列。
♦ g_ ↘ 將光標移動到當前行的最后一個字符上。
♦fa ↘ 將光標移動到下一個為a的字符處。這里的a是泛指任意字符。同理,你也可以用fb將光標移動下一個字符b上。
♦t,↘ 向前移動光標到,(逗號)之前。逗號也可被其它符號替換,比如,分號”;“。
♦T,↘ 向后移動光標到,(逗號)之前。
♦3fa↘ 向前查找在當前行出現的第三個a字符。
♦3Fa↘ 向后查找在當前行出現的第三個字符。
♦dt" ↘ 刪除當前位置到"之間的一切。
② 區域選擇
這些命令只能被用于visual模式下,且在一個操作符之后。
Ctrl + v進行矩形塊選擇。
主要格式:<action>a<object> 和 <action>i<object>
這里的action可以是任意action。如,d(刪除),y(復制),v(選擇visual模式)。
這里的object可以是:w代表word,W代表WORD(擴展word),s代表句子,p代表段落。
假設由如下文字,且光標在第一個o上:
使用vi“的效果如下:
使用va"的效果如下:
使用vi)
使用va)的效果如下:
使用v2i)的效果如下:
使用v2a)的效果如下:
③自動補全命令
♦ Ctrl + p和Ctrl + n,這里的n是next的意思。
④宏
qa將你的actions記錄在寄存器a中。@a會重新執行保存在寄存器a中的宏。@@是一個快捷鍵,用以執行最近一次被執行的宏。
qaYp<Ctrl + a>q
qa開始記錄
Yp重復當前行
Ctrl + a增量當前數字
q結束記錄
⑤Visual選擇
Ctrl + v,v 和V
J 整合所有行
< (>) 向左縮進(向右縮進),用得較多的自然是向右縮進。
= 自動縮進
A 插入
⑥分割
:split 水平分割
:vsplit 垂直分割
:e <文件> 打開文件
Ctrl + w切換窗口
Ctrl + + 增大窗口
Ctrl + - 減少窗口
Ctrl + / 增大當前窗口
Ctrl+w+hjkl跳轉窗口
:close 關閉串口
:only 關閉其它所有窗口
:qall 全部窗口退出
:wall 全部保存。
vim -o 文件1 文件2 ... 分屏打開文件
總結
- 上一篇: 2015 UESTC 数据结构专题G题
- 下一篇: PowerMock与EasyMock的应