1. 啓動vim
vim或 vim filename
2. 兩種編輯模式:普通模式、插入模式
1>啓動vim後,vim在 Normal模式下。
2>進入Insert模式,可以按下鍵i。在Insert模式下可以輸入文本了。
3>如果想用Normal模式,可以按ESC鍵回到Normal模式下。
3.複製與粘貼
1>複製命令爲y,用法與d相同(yw=複製單詞,y$=複製到行尾,yy是複製一行)。
普通模式下,將光標移動到要複製文本的開始,按下v,移動光標到要複製文本的末尾,按下y激活複製。
將光標移動到將要複製的行處,按yy舉行復制當前行(按nyy複製n行),再移動到粘貼位置,按p舉行粘貼
2>p爲粘貼
P/p都可以,p是當前位置之後,P表示當前位置之前。
3查找與替換
普通模式下按下斜線(/),輸入查找內容回車即可
替換命令
:s/old/new/g:替換行中所有old
:n.ms/old/new/g:替換n到m行之間的所有old
:%s/old/new/g:替換文件中的所有old
:%s/old/new/gc:替換文件中的所有old,每次替換給出提示
4.普通模式下常用命令。
1>:q :如果緩衝區未修改,退出
2>:q! :不保存,退出
3>:w filename :將文件另存爲到filename
4>:wq :保存並退出,等價於:”x,”或者ZZ(使用ZZ時不需要輸入冒號並回車)
5>:w !sudo tee %
在vim中保存一個只有root可以寫的文件。
6>f或file :可以查看當前打開文件的文件名和路徑
7> hjkl (強例推薦使用其移動光標,但不必需)→你也可以使用光標鍵 (←↓↑→). 注: j 就像下箭頭
5.vim 的其他一些常用命令(普通模式下,有些需要安裝相應的插件)
Tlist:列出文件中所有的變量名,宏,函數名(ctral+ww進行切換)
vs file:在同一個vim中打開另一個文件。
set tags=/path/tags 添加ctags便籤 然後按ctrl +] 進行跳轉,ctrl+T 跳回
6.各種插入模式
1> a --à在光標後插入
2>o --à在當前行後插入一個新行
3>O à在當前行前插入一個新行
4> cw à替換從光標所在位置後到一個單詞結尾的字符
7.簡單的移動光標:
1>0 -à數字零,到行頭
2>^ -à到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)
3>$ à到本行行尾
4>g_ -à到本行最後一個不是blank字符的位置
5>/parttern--à搜索pattern的字符串(如果搜索出多個匹配,可以按n鍵到下一個)
8.Undo/Redo
1>u --à undo
2>Ctral+r -àredo
9. 高級命令
1>vim 如何重複自己
(1) . --à(小數點)可以重複上一次的命令
(2)N<command> -à重複某個命令N此
例如:
2dd-à刪除2行
3p-à粘貼文本3次
100idesu 然後按下ESC會寫下100個desu
. --à重複上一個命令
3. -à重複3次上一次的命令
10. 讓鼠標的移動更有效率
1> NG --à鼠標移動到N行(G是大寫)
也可以使用:N 到第N行
2>gg -à到第一行。
3>G -à到最後一行
11.最強的光標移動:
1> %:匹配括號移動,包括(,{,[ note: 你需要把光標先移到括號上
2>* 和 #: 匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)
11.快操作
塊操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]
1>^ → 到行頭
2><C-v> → 開始塊操作
3><C-d> → 向下移動(你也可以使用hjkl來移動光標,或是使用%,或是別的)
4>I-- [ESC] → I是插入,插入“--”,按ESC鍵來爲每一行生效。
12.自動提示 <C-n> 和 <C-p>
在 Insert 模式下,你可以輸入一個詞的開頭,然後按 <C-p>或是<C-n>,自動補齊功能就出現了……
13.宏錄製:qa操作序列q,@a,@@
1>qa 把你的操作記錄在寄存器 a。
2>於是 @a 會replay被錄製的宏。
3>@@ 是一個快捷鍵用來replay最新錄製的宏。
示例
在一個只有一行且這一行只有“1”的文本中,鍵入如下命令:
(1)qaYp<C-a>q→
qa 開始錄製
Yp 複製行.
<C-a> 增加1.
q 停止錄製.
(2)@a → 在1下面寫下 2
(3)@@ → 在2 正面寫下3
(4)現在做 100@@ 會創建新的100行,並把數據增加到 103.
可視化選擇: v,V,<C-v>
14.前面,我們看到了 <C-v>的示例 (在Windows下應該是<C-q>),我們可以使用 v 和 V。一但被選好了,你可以做下面的事:
J → 把所有的行連接起來(變成一行)
< 或 > → 左右縮進
= → 自動給縮進 (陳皓注:這個功能相當強大,我太喜歡了)
在所有被選擇的行後加上點東西:
<C-v>
選中相關的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
$ 到行最後
A, 輸入字符串,按 ESC。
15.分屏: :split 和 vsplit.
下面是主要的命令,你可以使用VIM的幫助 :help split. 你可以參考本站以前的一篇文章VIM分屏。
:split → 創建分屏(:vsplit創建垂直分屏)
<C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。
<C-w>_ (或 <C-w>|) :最大化尺寸 (<C-w>| 垂直分屏)
<C-w>+ (或<C-w>-) : 增加尺寸