基本概念
Vim 的基本模式 (basic mode) 有六種:
- 常態模式 (Normal mode)
一進入 vim 就是處於這個模式, 只能下指令, 不能編輯文字.
- 插入模式 (Insert mode)
按 i (insert) / a (append) / o (open) 就會進入到插入模式, 此時才可以編輯文字, 按 Esc 又回到常態模式. 此時狀態列會有 - INSERT - 字樣.
- 命令列模式 (Command-lmode)
按 冒號 ( : ) 就會進入命令列模式, 左下角會有一個冒號出現. 也是按 Esc 回到常態模式. 搜尋時的 / 及 ? 也是屬於命令列模式.
- 反白模式 (Visual mode)
就是把需要處理的文字反白起來, 狀態列會有 - VISUAL - 或 - VISUAL LINE - 或 - VISUAL BLOCK - 字樣.
- 選擇模式 (Select mode)
不清楚跟反白模式有什麼差異. Orz
- Ex 模式 (Ex mode)
和命令列模式是一樣的, 差別在於下完指令之後, 還是留在 Ex 模式. 按 gQ 可以進入 Ex 模式, 輸入 visual 可以返回常態模式.
基本上除了 Ex 模式, 其他的模式, 在 vim 使用過程中, 都會用的到.
指令進入插入模式的指令i - 在游標所在字元前開始輸入文字 (insert) a - 在游標所在字元後開始輸入文字 (append) o - 在游標所在行下開一新行來輸入文字 (open) I - 在行首開始輸入文字. 這邊指的是第一個非空白字的地方. A - 從行尾開始輸入文字. O - 從游標所在行上開一新行來輸入文字.
刪除指令dd - 刪除一整行 (delete line) d$ - 刪至行尾 (含游標所在字元) d^ - 刪至行首 (不含游標所在字元) d0 - 用途跟 d^ 一樣
取代及還原 u - 就是重要的 undo Ctrl+r - 重要的 redo
複製與貼上yy - 複製游標所在行整行. (yank) p - 貼在游標之後 (put) P - 貼在游標之前 "ayy - 將本行文字複製到 a 緩衝區 (vim 稱為 registers). a 可以換成 [a-zA-Z] 任一字母, 小寫的原先的內容會被清掉, 如果是大寫則有 append 的作用. "ap - 從 a 緩衝區的內容貼上
:reg 可以用來列出所有的 registers 的代號及內容.
好用的指令. - 句號, 代表重複前次的編輯動作
shift+insert - 貼上在其他地方複製的內容
================TODO: http://edt1023.sayya.org/vim/node6.html ================ 全選 --> ggvG ================ vim 取代 http://greenisland.csie.nctu.edu.tw/wp/2005/09/02/302/ --- 一般對於整份文件都要作置換的話,我都會下像這樣的指令: :%s/, /,/g --- 所以同理,如果你要把那些因為 un*ix 和 DOS 之間格式不合所造成的^M消掉的話,也只需要下成這樣就可以了 :%s/^M//g --- 當然你很確定行數,你也可以這樣下: :1,300s/vim/VIM/g --- 或者是如果你很確定要從現在游標所在行之後的所有行都置換,可以下成: :.,$s/vim/VIM/g --- 冒號一開頭的那一小點「 . 」就代表游標現在所在行,「$」則用來表示最後一行。 或許聰明的你已經想到怎麼樣可以從現在所在行之前的都要置換了, :.,1s/vim/VIM/g --- 不過當你這樣打的時候, vim 會跳出來一個訊息: Backwards range given, OK to swap (y/n)?---
取代掉所有的 html tag
:%s/<[^<>]*>//g
---
// code block
@TODO:
|
|