《 V I M 教 程 》

===============================================================================
= 歡 迎 閱 讀 《 V I M 教 程 》 —— 版本 1.7 =

Vim 是一個具備不少命令的功能很是強大的編輯器。限於篇幅,在本教程當中
 就不詳細介紹了。本教程的設計目標是講述一些必要的基本命令,而掌握好這
 些命令,您就可以很容易地將 Vim 看成一個通用編輯器來使用了。

 完成本教程的內容大約須要25-30分鐘,取決於您訓練的時間。

 注意:
 每一節的命令操做將會更改本文。推薦您複製本文的一個副本,而後在副本上
 進行訓練(若是您是經過"vimtutor"來啓動教程的,那麼本文就已是副本了)。

 切記一點:本教程的設計思路是在使用中進行學習的。也就是說,您須要經過
 執行命令來學習它們自己的正確用法。若是您只是閱讀而不操做,那麼您可能
 會很快遺忘這些命令的!

 好了,如今請肯定您的Shift-Lock(大小寫鎖定鍵)尚未按下,而後按鍵盤上
 的字母鍵 j 足夠屢次來移動光標,直到第一節的內容可以徹底充滿屏幕。
第一講第一節:移動光標

         ** 要移動光標,請依照說明分別按下 h、j、k、l 鍵。 **

         ^
         k          提示: h 的鍵位於左邊,每次按下就會向左移動。
       < h   l >           l 的鍵位於右邊,每次按下就會向右移動。
         j             j 鍵看起來很象一支尖端方向朝下的箭頭。
         v

  1. 請隨意在屏幕內移動光標,直至您以爲舒服爲止。

  2. 按下下行鍵(j),直到出現光標重複下行。

---> 如今您應該已經學會如何移動到下一講吧。

  3. 如今請使用下行鍵,將光標移動到第一講第二節。

提示:若是您不敢肯定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
      而後再次從鍵盤輸入您想要的命令。

提示:光標鍵應當也能正常工做的。可是使用hjkl鍵,在習慣以後您就可以更快
      地在屏幕內四處移動光標。真的是這樣!
第一講第二節:VIM的進入和退出

!! 特別提示:敬請閱讀本一節的完整內容,而後再執行如下所講解的命令。html

  1. 按<ESC>鍵(這是爲了確保您處在正常模式)。linux

  2. 而後輸入: :q! <回車>
    這種方式的退出編輯器會丟棄您進入編輯器以來所作的改動。spring

  3. 若是您看到了命令行提示符,請輸入可以帶您回到本教程的命令,那就是:
    vimtutor <回車>shell

  4. 若是您自信已經緊緊記住了這些步驟的話,請從步驟1執行到步驟3退出,然
    後再次進入編輯器。

提示: :q! <回車> 會丟棄您所作的任何改動。幾講以後您將學會如何保存改動到文件。vim

  1. 將光標下移到第一講第三節。
第一講第三節:文本編輯之刪除

   ** 在正常(Normal)模式下,能夠按下 x 鍵來刪除光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 爲了修正輸入錯誤,請將光標移至準備刪除的字符的位置處。

  3. 而後按下 x 鍵將錯誤字符刪除掉。

  4. 重複步驟2到步驟4,直到句子修正爲止。

---> The ccow jumpedd ovverr thhe mooon.

  5. 好了,該行已經修正了,下面是第一講第四節。

特別提示:在瀏覽本教程時,不要強行記憶。記住一點:在使用中學習。
第一講第四節:文本編輯之插入

 ** 在正常模式下,能夠按下 i 鍵來插入文本。**
  1. 請將光標移動到本節中下面標記有 ---> 的第一行。app

  2. 爲了使得第一行內容雷同於第二行,請將光標移至文本第一個準備插入字符
    的位置。編輯器

  3. 而後按下 i 鍵,接着輸入必要的文本字符。ide

  4. 每一個錯誤修正完畢後,請按下 <ESC> 鍵返回正常模式。
    重複步驟2至步驟4以便修正句子。

---> There is text misng this .
---> There is some text missing from this line.學習

  1. 若是您對文本插入操做已經很滿意,請接着閱讀下面的第一講第五節。
第一講第五節:文本編輯之添加

            ** 按 A 鍵以添加文本。 **

  1. 移動光標到下面第一個標記有 ---> 的一行。
     光標放在那一行的哪一個字符上並不重要。

  2. 按 A 鍵輸入必要的添加內容。

  3. 文本添加完畢後,按 <ESC> 鍵回到正常模式。

  4. 移動光標到下面第二個標記有 ---> 的一行。重複步驟2和步驟3以改正這個句子。

---> There is some text missing from th
     There is some text missing from this line.
---> There is also some text miss
     There is also some text missing here.

  5. 當您對添加文本操做感到滿意時,請繼續學習第一講第六節。
第一講第六節:編輯文件

        ** 使用 :wq 以保存文件並退出。 **

特別提示:在執行如下步驟以前,請先讀完整個小節!測試

  1. 如您在第一講第二節中所作的那樣退出本教程: :q!
    或者,若是您能夠訪問另外一個終端,請在那裏執行如下操做。

  2. 在 shell 的提示符下輸入命令: vim tutor <回車>
    'vim'是啓動 Vim 編輯器的命令,'tutor'是您但願編輯的文件的名字。
    請使用一個能夠改動的文件。

  3. 使用您在前面的教程中學到的命令插入刪除文本。

  4. 保存改動過的文件並退出 Vim,按這些鍵: :wq <回車>

  5. 若是您在步驟1中已經退出 vimtutor,請重啓 vimtutor 移動到下面的小結一節。

  6. 閱讀完以上步驟,弄懂它們的意義,而後在實踐中進行練習。
第一講小結

  1. 光標在屏幕文本中的移動既能夠用箭頭鍵,也可使用 hjkl 字母鍵。
     h (左移) j (下行)       k (上行)     l (右移)

  2. 欲進入 Vim 編輯器(從命令行提示符),請輸入:vim 文件名 <回車>

  3. 欲退出 Vim 編輯器,請輸入 <ESC>   :q!   <回車> 放棄全部改動。
                      或者輸入 <ESC>   :wq   <回車> 保存改動。

  4. 在正常模式下刪除光標所在位置的字符,請按: x

  5. 欲插入或添加文本,請輸入:

     i   輸入欲插入文本   <ESC>        在光標前插入文本
     A   輸入欲添加文本   <ESC>             在一行後添加文本

特別提示:按下 <ESC> 鍵會帶您回到正常模式或者撤消一個不想輸入或部分完整
的命令。

好了,第一講到此結束。下面接下來繼續第二講的內容。
第二講第一節:刪除類命令

    ** 輸入 dw 能夠從光標處刪除至一個單詞的末尾。**
  1. 請按下 <ESC> 鍵確保您處於正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移至準備要刪除的單詞的起始處。

  4. 接着輸入 dw 刪除掉該單詞。

    特別提示:當您輸入時,字母 d 會同時出如今屏幕的最後一行。Vim 在等待您輸入
    字母 w。若是您看到的是除 d 外的其餘字符,那代表您按錯了;請按下 <ESC> 鍵,
    而後從新再來。

---> There are a some words fun that don't belong paper in this sentence.

  1. 重複步驟3和步驟4,直至句子修正完畢。接着繼續第二講第二節內容。
第二講第二節:更多刪除類命令

           ** 輸入 d$ 從當前光標刪除到行末。**

  1. 請按下 <ESC> 鍵確保您處於正常模式。

  2. 請將光標移動到本節中下面標記有 ---> 的那一行。

  3. 請將光標移動到該行的尾部(也就是在第一個點號‘.’後面)。

  4. 而後輸入 d$ 從光標處刪至當前行尾部。

---> Somebody typed the end of this line twice. end of this line twice.

  5. 請繼續學習第二講第三節就知道是怎麼回事了。
第二講第三節:關於命令和對象

許多改變文本的命令都由一個操做符和一個動做構成。
使用刪除操做符 d 的刪除命令的格式以下:

d   motion

其中:
d - 刪除操做符。
motion - 操做符的操做對象(在下面列出)。

一個簡短的動做列表:
w - 從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符。
e - 從當前光標當前位置直到單詞末尾,包括最後一個字符。
$ - 從當前光標當前位置直到當前行末。

所以輸入 de 會從當前光標位置刪除到單詞末尾。

特別提示:
對於敢於探索者,請在正常模式下面僅按表明相應動做的鍵而不使用操做符,您
將看到光標的移動正如上面的對象列表所表明的同樣。

第二講第四節:使用計數指定動做

             ** 在動做前輸入數字會使它重複那麼屢次。 **

  1. 移動光標到下面標記有 ---> 的一行的開始。

  2. 輸入 2w 使光標向前移動兩個單詞。

  3. 輸入 3e 使光標向前移動到第三個單詞的末尾。

  4. 輸入 0 (數字零) 移動光標到行首。

  5. 重複步驟2和步驟3,嘗試不一樣的數字。

---> This is just a line with words you can move around in.

  6. 請繼續學習第二講第五節。
第二講第五節:使用計數以刪除更多

       ** 使用操做符時輸入數字可使它重複那麼屢次。 **

上面已經提到過刪除操做符和動做的組合,您能夠在組合中動做以前插入一個數字以
刪除更多:
d number(數字) motion

  1. 移動光標到下面標記有 ---> 的一行中第一個大寫字母單詞上。

  2. 輸入 d2w 以刪除兩個大寫字母單詞。

  3. 重複步驟1和步驟2,使用不一樣的數字使得用一個命令就能刪除所有相鄰的大寫字母
    單詞

---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.

第二講第六節:操做整行

             ** 輸入 dd 能夠刪除整一個當前行。 **

  鑑於整行刪除的高頻度,Vi 的設計者決定要簡化整行刪除操做,您僅須要在同一行上
  擊打兩次 d 就能夠刪除掉光標所在的整行了。

  1. 請將光標移動到本節中下面的短句段落中的第二行。
  2. 輸入 dd 刪除該行。
  3. 而後移動到第四行。
  4. 接着輸入 2dd 刪除兩行。

--->  1)  Roses are red,
--->  2)  Mud is fun,
--->  3)  Violets are blue,
--->  4)  I have a car,
--->  5)  Clocks tell time,
--->  6)  Sugar is sweet
--->  7)  And so are you.
第二講第七節:撤消類命令

** 輸入 u 來撤消最後執行的命令,輸入 U 來撤消對整行的修改。 **
  1. 請將光標移動到本節中下面標記有 ---> 的那一行,並將其置於第一個錯誤
    處。
  2. 輸入 x 刪除第一個不想保留的字母。
  3. 而後輸入 u 撤消最後執行的(一次)命令。
  4. 此次要使用 x 修正本行的全部錯誤。
  5. 如今輸入一個大寫的 U ,恢復到該行的原始狀態。
  6. 接着屢次輸入 u 以撤消 U 以及更前的命令。
  7. 而後屢次輸入 CTRL-R (先按下 CTRL 鍵不放開,接着按 R 鍵),這樣就
    能夠重作被撤消的命令,也就是撤消掉撤消命令。

---> Fiix the errors oon thhis line and reeplace them witth undo.

  1. 這些都是很是有用的命令。下面是第二講的小結了。
第二講小結

  1. 欲從當前光標刪除至下一個單詞,請輸入:dw
  2. 欲從當前光標刪除至當前行末尾,請輸入:d$
  3. 欲刪除整行,請輸入:dd

  4. 欲重複一個動做,請在它前面加上一個數字:2w
  5. 在正常模式下修改命令的格式是:
               operator   [number]   motion
     其中:
       operator - 操做符,表明要作的事情,好比 d 表明刪除
       [number] - 能夠附加的數字,表明動做重複的次數
       motion   - 動做,表明在所操做的文本上的移動,例如 w 表明單詞(word),
          $ 表明行末等等。

  6. 欲移動光標到行首,請按數字0鍵:0

  7. 欲撤消之前的操做,請輸入:u (小寫的u)
     欲撤消在一行中所作的改動,請輸入:U (大寫的U)
     欲撤消之前的撤消命令,恢復之前的操做結果,請輸入:CTRL-R
第三講第一節:置入類命令

    ** 輸入 p 將最後一次刪除的內容置入光標以後。 **
  1. 請將光標移動到本節中下面第一個標記有 ---> 的一行。

  2. 輸入 dd 將該行刪除,這樣會將該行保存到 Vim 的一個寄存器中。

  3. 接着將光標移動到 c) 一行,即準備置入的位置的上方。記住:是上方哦。

  4. 而後在正常模式下(<ESC>鍵進入)輸入 p 將該行粘貼置入。

  5. 重複步驟2至步驟4,將全部的行依序放置到正確的位置上。

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,

第三講第二節:替換類命令

      ** 輸入 r 和一個字符替換光標所在位置的字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 請移動光標到第一個出錯的位置。

  3. 接着輸入 r 和要替換成的字符,這樣就能將錯誤替換掉了。

  4. 重複步驟2和步驟3,直到第一行已經修改完畢。

--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
--->  When this line was typed in, someone pressed some wrong keys!

  5. 而後咱們繼續學習第三講第三節。

特別提示:切記您要在使用中學習,而不是在記憶中學習。
第三講第三節:更改類命令

     ** 要改變文本直到一個單詞的末尾,請輸入 ce **
  1. 請將光標移動到本節中下面標記有 ---> 的第一行。

  2. 接着把光標放在單詞 lubw 的字母 u 的位置那裏。

  3. 而後輸入 cw 以及正確的單詞(在本例中是輸入 ine )。

  4. 最後按 <ESC> 鍵,而後光標定位到下一個錯誤第一個準備更改的字母處。

  5. 重複步驟3和步驟4,直到第一個句子徹底雷同第二個句子。

---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.

提示:請注意 ce 命令不只僅是刪除了一個單詞,它也讓您進入插入模式了。

第三講第四節:使用c更改更多

       ** 更改類操做符能夠與刪除中使用的一樣的動做配合使用。 **

  1. 更改類操做符的工做方式跟刪除類是一致的。操做格式是:

         c    [number]   motion

  2. 動做參數(motion)也是同樣的,好比 w 表明單詞,$表明行末等等。

  3. 請將光標移動到本節中下面標記有 ---> 的第一行。

  4. 接着將光標移動到第一個錯誤處。

  5. 而後輸入 c$ 使得該行剩下的部分更正得同第二行同樣。最後按 <ESC> 鍵。

---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the  c$  command.
第三講小結
  1. 要從新置入已經刪除的文本內容,請按小寫字母 p 鍵。該操做能夠將已刪除
    的文本內容置於光標以後。若是最後一次刪除的是一個整行,那麼該行將置
    於當前光標所在行的下一行。

  2. 要替換光標所在位置的字符,請輸入小寫的 r 和要替換掉原位置字符的新字
    符便可。

  3. 更改類命令容許您改變從當前光標所在位置直到動做指示的位置中間的文本。
    好比輸入 ce 能夠替換當前光標到單詞的末尾的內容;輸入 c$ 能夠替換當
    前光標到行末的內容。

  4. 更改類命令的格式是:

    c [number] motion

如今咱們繼續學習下一講。

第四講第一節:定位及文件狀態

  ** 輸入 CTRL-G 顯示當前編輯文件中當前光標所在行位置以及文件狀態信息。
     輸入大寫 G 則直接跳轉到文件中的某一指定行。**

  提示:切記要先通讀本節內容,以後才能夠執行如下步驟!!!

  1. 按下 CTRL 鍵不放開而後按 g 鍵。咱們稱這個鍵組合爲 CTRL-G。
     您會看到頁面最底部出現一個狀態信息行,顯示的內容是當前編輯的文件名
     和文件中光標位置。請記住行號,它會在步驟3中用到。

提示:您也許會在屏幕的右下角看到光標位置,這會在 'ruler' 選項設置時發生
      (參見 :help 'ruler')

  2. 輸入大寫 G 可使得當前光標直接跳轉到文件最後一行。
     輸入 gg 可使得當前光標直接跳轉到文件第一行。

  3. 輸入您曾停留的行號,而後輸入大寫 G。這樣就能夠返回到您第一次按下
     CTRL-G 時所在的行了。

  4. 若是您以爲沒問題的話,請執行步驟1至步驟3的操做進行練習。
第四講第二節:搜索類命令

 ** 輸入 / 加上一個字符串能夠用以在當前文件中查找該字符串。**
  1. 在正常模式下輸入 / 字符。您此時會注意到該字符和光標都會出如今屏幕底
    部,這跟 : 命令是同樣的。

  2. 接着輸入 errroor <回車>。那個errroor就是您要查找的字符串。

  3. 要查找同上一次的字符串,只須要按 n 鍵。要向相反方向查找同上一次的字
    符串,請輸入大寫 N 便可。

  4. 若是您想逆向查找字符串,請使用 ? 代替 / 進行。

  5. 要回到您以前的位置按 CTRL-O (按住 Ctrl 鍵不放同時按下字母 o)。重複按能夠
    回退更多步。CTRL-I 會跳轉到較新的位置。

---> "errroor" is not the way to spell error; errroor is an error.
提示:若是查找已經到達文件末尾,查找會自動從文件頭部繼續查找,除非
'wrapscan' 選項被複位。

第四講第三節:配對括號的查找

          ** 輸入 % 能夠查找配對的括號 )、]、}。**

  1. 把光標放在本節下面標記有 --> 那一行中的任何一個 (、[ 或 { 處。

  2. 接着按 % 字符。

  3. 此時光標的位置應當是在配對的括號處。

  4. 再次按 % 就能夠跳回配對的第一個括號處。

  5. 移動光標到另外一個 (、)、[、]、{ 或 } 處,按 % 查看其所做所爲。

---> This ( is a test line with ('s, ['s ] and {'s } in it. ))

提示:在程序調試時,這個功能用來查找不配對的括號是頗有用的。
第四講第四節:替換命令

    ** 輸入 :s/old/new/g 能夠替換 old 爲 new。**
  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 輸入 :s/thee/the <回車> 。請注意該命令只改變光標所在行的第一個匹配
    串。

  3. 輸入 :s/thee/the/g 則是替換全行的匹配串,該行中全部的 "thee" 都會被
    改變。

---> thee best time to see thee flowers is in thee spring.

  1. 要替換兩行之間出現的每一個匹配串,請
    輸入 :#,#s/old/new/g 其中 #,# 表明的是替換操做的若干行中
    首尾兩行的行號。
    輸入 :%s/old/new/g 則是替換整個文件中的每一個匹配串。
    輸入 :%s/old/new/gc 會找到整個文件中的每一個匹配串,而且對每一個匹配串
    提示是否進行替換。
第四講小結

  1. CTRL-G 用於顯示當前光標所在位置和文件狀態信息。
     G 用於將光標跳轉至文件最後一行。
     先敲入一個行號而後輸入大寫 G 則是將光標移動至該行號表明的行。
     gg 用於將光標跳轉至文件第一行。

  2. 輸入 / 而後緊隨一個字符串是在當前所編輯的文檔中正向查找該字符串。
     輸入 ? 而後緊隨一個字符串則是在當前所編輯的文檔中反向查找該字符串。
     完成一次查找以後按 n 鍵是重複上一次的命令,可在同一方向上查
     找下一個匹配字符串所在;或者按大寫 N 向相反方向查找下一匹配字符串所在。
     CTRL-O 帶您跳轉回較舊的位置,CTRL-I 則帶您到較新的位置。

  3. 若是光標當前位置是括號(、)、[、]、{、},按 % 會將光標移動到配對的括號上。

  4. 在一行內替換頭一個字符串 old 爲新的字符串 new,請輸入  :s/old/new
     在一行內替換全部的字符串 old 爲新的字符串 new,請輸入  :s/old/new/g
     在兩行內替換全部的字符串 old 爲新的字符串 new,請輸入  :#,#s/old/new/g
     在文件內替換全部的字符串 old 爲新的字符串 new,請輸入  :%s/old/new/g
     進行全文替換時詢問用戶確認每一個替換需添加 c 標誌        :%s/old/new/gc
第五講第一節:在 VIM 內執行外部命令的方法

   ** 輸入 :! 而後緊接着輸入一個外部命令能夠執行該外部命令。**
  1. 按下咱們所熟悉的 : 命令使光標移動到屏幕底部。這樣您就能夠輸入一行命令了。

  2. 接着輸入感嘆號 ! 這個字符,這樣就容許您執行外部的 shell 命令了。

  3. 咱們以 ls 命令爲例。輸入 !ls <回車> 。該命令就會列舉出您當前目錄的
    內容,就如同您在命令行提示符下輸入 ls 命令的結果同樣。若是 !ls 沒起
    做用,您能夠試試 :!dir 看看。

提示:全部的外部命令均可以以這種方式執行,包括帶命令行參數的那些。

提示:全部的 : 命令都必須以敲 <回車> 鍵結束。從今之後咱們就不會老是提到這一點
了。

第五講第二節:關於保存文件的更多信息

         ** 要將對文件的改動保存到文件中,請輸入 :w FILENAME 。**

  1. 輸入 :!dir 或者 :!ls 獲知當前目錄的內容。您應當已知道最後還得敲
     <回車> 吧。

  2. 選擇一個未被用到的文件名,好比 TEST。

  3. 接着輸入 :w TEST  (此處 TEST 是您所選擇的文件名。)

  4. 該命令會以 TEST 爲文件名保存整個文件 (Vim 教程)。爲了驗證這一點,
     請再次輸入 :!dir 或 :!ls 查看您的目錄列表內容。

請注意:若是您退出 Vim 而後在以命令 vim TEST 再次啓動 Vim,那麼該文件內
     容應該同您保存時的文件內容是徹底同樣的。

  5. 如今您能夠刪除 TEST 文件了。在 MS-DOS 下,請輸入:   :!del TEST
                                 在 Unix 下,請輸入:     :!rm TEST
第五講第三節:一個具備選擇性的保存命令

    ** 要保存文件的部份內容,請輸入 v motion :w FILENAME **
  1. 移動光標到本行。

  2. 接着按 v 鍵,將光標移動至下面第五個條目上。您會注意到之間的文本被高亮了。

  3. 而後按 : 字符。您將看到屏幕底部會出現 :'<,'> 。

  4. 如今請輸入 w TEST,其中 TEST 是一個未被使用的文件名。確認您看到了
    :'<,'>w TEST 以後按 <回車> 鍵。

  5. 這時 Vim 會把選中的行寫入到以 TEST 命名的文件中去。使用 :!dir 或 :!ls
    確認文件被正確保存。此次先別刪除它!咱們在下一講中會用到它。

提示:按 v 鍵使 Vim 進入可視模式進行選取。您能夠四處移動光標使選取區域變大或
變小。接着您可使用一個操做符對選中文本進行操做。例如,按 d 鍵會刪除
選中的文本內容。

第五講第四節:提取和合並文件

       ** 要向當前文件中插入另外的文件的內容,請輸入 :r FILENAME **

  1. 請把光標移動到本行上面一行。

特別提示:執行步驟2以後您將看到第五講第三節的文字,請屆時往下移動
          以再次看到本講內容。

  2. 接着經過命令 :r TEST 將前面建立的名爲 TEST 的文件提取進來。
     您所提取進來的文件將從光標所在位置處開始置入。

  3. 爲了確認文件已經提取成功,移動光標回到原來的位置就能夠注意有兩份第
     五講第三節的內容,一份是原始內容,另一份是來自文件的副本。

提示:您還能夠讀取外部命令的輸出。例如, :r !ls 能夠讀取 ls 命令的輸出,並
      把它放置在光標下面。
第五講小結
  1. :!command 用於執行一個外部命令 command。

    請看一些實際例子:
    (MS-DOS) (Unix)
    :!dir :!ls - 用於顯示當前目錄的內容。
    :!del FILENAME :!rm FILENAME - 用於刪除名爲 FILENAME 的文件。

  2. :w FILENAME 可將當前 VIM 中正在編輯的文件保存到名爲 FILENAME 的文
    件中。

  3. v motion :w FILENAME 可將當前編輯文件中可視模式下選中的內容保存到文件
    FILENAME 中。

  4. :r FILENAME 可提取磁盤文件 FILENAME 並將其插入到當前文件的光標位置
    後面。

  5. :r !dir 能夠讀取 dir 命令的輸出並將其放置到當前文件的光標位置後面。
第六講第一節:打開類命令

     ** 輸入 o 將在光標的下方打開新的一行並進入插入模式。**

  1. 請將光標移動到本節中下面標記有 ---> 的那一行。

  2. 接着輸入小寫的 o 在光標 *下方* 打開新的一行,這個命令會使您
     進入插入模式。

  3. 而後輸入一些文字,以後按 <ESC> 鍵退出插入模式而進入正常模式。

---> After typing  o  the cursor is placed on the open line in Insert mode.

  4. 爲了在光標 *上方* 打開新的一行,只須要輸入大寫的 O 而不是小寫的 o
     就能夠了。請在下行測試一下吧。

---> Open up a line above this by typing O while the cursor is on this line.
第六講第二節:附加類命令

         ** 輸入 a 將可在光標以後插入文本。 **
  1. 請在正常模式下將光標移動到本節中下面標記有 ---> 的第一行的行首。

  2. 接着輸入 e 直到光標位於 li 的末尾。

  3. 輸入小寫的 a 則可在光標以後插入文本了。

  4. 將單詞補充完整,就像下一行中的那樣。以後按 <ESC> 鍵退出插入模式回到
    正常模式。

  5. 使用 e 移動光標到下一步不完整的單詞,重複步驟3和步驟4。

---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.

提示:a、i 和 A 都會帶您進入插入模式,唯一的區別在於字符插入的位置。

第六講第三節:另一個置換類命令的版本

              ** 輸入大寫的 R 可連續替換多個字符。**

  1. 請將光標移動到本節中下面標記有 ---> 的第一行。移動光標到第一個 xxx 的
     起始位置。

  2. 而後輸入大寫的 R 開始把第一行中的不一樣於第二行的剩餘字符逐一輸入,就
     能夠所有替換掉原有的字符而使得第一行徹底雷同第二行了。

  3. 接着按 <ESC> 鍵退出替換模式回到正常模式。您能夠注意到還沒有替換的文本
     仍然保持原狀。

  4. 重複以上步驟,將剩餘的 xxx 也替換掉。

---> Adding 123 to xxx gives you xxx.
---> Adding 123 to 456 gives you 579.

提示:替換模式與插入模式類似,不過每一個輸入的字符都會刪除一個已有的字符。
第六講第四節:複製粘貼文本

     ** 使用操做符 y 複製文本,使用 p 粘貼文本 **
  1. 定位到下面標記有 ---> 的一行,將光標移動到 "a)" 以後。

  2. 接着使用 v 進入可視模式,移動光標到 "first" 的前面。

  3. 如今輸入 y 以抽出(複製)高亮的文本。

  4. 而後移動光標到下一行的末尾:j$

  5. 接着輸入 p 以放置(粘貼)複製了的文本。而後輸入:a second <ESC>。

  6. 使用可視模式選中 " item.",用 y 複製,再用 j$ 將光標移動到下一行末尾,
    用 p 將文本粘貼到那裏。

---> a) this is the first item.
b)

提示:您還能夠把 y 看成操做符來使用;例如 yw 能夠用來複制一個單詞。

第六講第五節:設置類命令的選項

          ** 設置可以使查找或者替換可忽略大小寫的選項 **

  1. 要查找單詞 ignore 可在正常模式下輸入 /ignore <回車>。
     要重複查找該詞,能夠重複按 n 鍵。

  2. 而後設置 ic 選項(Ignore Case,忽略大小寫),請輸入: :set ic

  3. 如今能夠經過鍵入 n 鍵再次查找單詞 ignore。注意到 Ignore 和 IGNORE 如今
     也被找到了。

  4. 而後設置 hlsearch 和 incsearch 這兩個選項,請輸入: :set hls is

  5. 如今能夠再次輸入查找命令,看看會有什麼效果: /ignore <回車>

  6. 要禁用忽略大小寫,請輸入: :set noic

提示:要移除匹配項的高亮顯示,請輸入:  :nohlsearch
提示:若是您想要僅在一次查找時忽略字母大小寫,您可使用 \c:
      /ignore\c <回車>
第六講小結
  1. 輸入小寫的 o 能夠在光標下方打開新的一行並進入插入模式。
    輸入大寫的 O 能夠在光標上方打開新的一行。

  2. 輸入小寫的 a 能夠在光標所在位置以後插入文本。
    輸入大寫的 A 能夠在光標所在行的行末以後插入文本。

  3. e 命令可使光標移動到單詞末尾。

  4. 操做符 y 複製文本,p 粘貼先前複製的文本。

  5. 輸入大寫的 R 將進入替換模式,直至按 <ESC> 鍵回到正常模式。

  6. 輸入 :set xxx 能夠設置 xxx 選項。一些有用的選項以下:
    'ic' 'ignorecase' 查找時忽略字母大小寫
    'is' 'incsearch' 查找短語時顯示部分匹配
    'hls' 'hlsearch' 高亮顯示全部的匹配短語
    選項名能夠用完整版本,也能夠用縮略版本。

  7. 在選項前加上 no 能夠關閉選項: :set noic
第七講第一節:獲取幫助信息

              ** 使用在線幫助系統 **

  Vim 擁有一個細緻全面的在線幫助系統。要啓動該幫助系統,請選擇以下三種方
  法之一:
    - 按下 <HELP> 鍵 (若是鍵盤上有的話)
    - 按下 <F1> 鍵 (若是鍵盤上有的話)
    - 輸入    :help <回車>

  請閱讀幫助窗口中的文字以瞭解幫助是如何工做的。
  輸入 CTRL-W CTRL-W   可使您在窗口之間跳轉。
  輸入 :q <回車> 能夠關閉幫助窗口。

  提供一個正確的參數給":help"命令,您能夠找到關於該主題的幫助。請試驗以
  下參數(可別忘了按回車鍵哦):

    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual
第七講第二節:建立啓動腳本

          ** 啓用 Vim 的特性 **

Vim 的功能特性要比 Vi 多得多,但其中大部分都沒有缺省啓用。爲了使用更多的
特性,您得建立一個 vimrc 文件。

  1. 開始編輯 vimrc 文件,具體命令取決於您所使用的操做系統:
    :edit ~/.vimrc 這是 Unix 系統所使用的命令
    :edit $VIM/_vimrc 這是 MS-Windows 系統所使用的命令

  2. 接着讀取 vimrc 示例文件的內容:
    :r $VIMRUNTIME/vimrc_example.vim

  3. 保存文件,命令爲:
    :write

    下次您啓動 Vim 時,編輯器就會有了語法高亮的功能。
    您能夠把您喜歡的各類設置添加到這個 vimrc 文件中。
    要了解更多信息請輸入 :help vimrc-intro

第七講第三節:補全功能

          ** 使用 CTRL-D 和 <TAB> 能夠進行命令行補全 **

  1. 請確保 Vim 不是在以兼容模式運行: :set nocp

  2. 查看一下當前目錄下已經存在哪些文件,輸入: :!ls   或者  :!dir

  3. 如今輸入一個目錄的起始部分,例如輸入: :e

  4. 接着按 CTRL-D 鍵,Vim 會顯示以 e 開始的命令的列表。

  5. 而後按 <TAB> 鍵,Vim 會補全命令爲 :edit 。

  6. 如今添加一個空格,以及一個已有文件的文件名的起始部分,例如: :edit FIL

  7. 接着按 <TAB> 鍵,Vim 會補全文件名(若是它是唯一匹配的)。

提示:補全對於許多命令都有效。您只需嘗試按 CTRL-D 和 <TAB>。
      它對於 :help 命令很是有用。
第七講小結
  1. 輸入 :help 或者按 <F1> 鍵或 <Help> 鍵能夠打開幫助窗口。

  2. 輸入 :help cmd 能夠找到關於 cmd 命令的幫助。

  3. 輸入 CTRL-W CTRL-W 可使您在窗口之間跳轉。

  4. 輸入 :q 以關閉幫助窗口

  5. 您能夠建立一個 vimrc 啓動腳本文件用來保存您偏好的設置。

  6. 當輸入 : 命令時,按 CTRL-D 能夠查看可能的補全結果。
    按 <TAB> 可使用一個補全。
vim 教程到此就結束了。本教程只是爲了簡明地介紹一下 Vim 編輯器,但已足以讓您
  很容易使用這個編輯器了。毋庸質疑,vim還有不少不少的命令,本教程所介
  紹的距離完整的差得很遠。因此您要精通的話,還望繼續努力哦。下一步您能夠閱讀
  Vim 的用戶手冊,使用的命令是: :help user-manual

  下面這本書值得推薦用於更進一步的閱讀和學習:
    Vim - Vi Improved - 做者:Steve Oualline
    出版社:New Riders
  這是第一本徹底講解 Vim 的書籍。它對於初學者特別有用。其中包含有大量實例
  和圖示。
  欲知詳情,請訪問 http://iccf-holland.org/click5.html

  如下這本書比較老了並且內容更可能是關於 Vi 而非 Vim,可是也值得推薦:
    Learning the Vi Editor - 做者:Linda Lamb
    出版社:O'Reilly & Associates Inc.
  這是一本不錯的書,經過它您幾乎可以瞭解到任何您想要使用 Vi 作的事情。
  此書的第六個版本也包含了一些關於 Vim 的信息。

  本教程是由來自 Calorado School of Mines 的 Michael C. Pierce 和
  Robert K. Ware 所編寫的,其中不少創意由來自 Colorado State University 的
  Charles Smith 提供。編者的電子郵箱是:bware@mines.colorado.edu

  本教程已由 Bram Moolenaar 專爲 Vim 進行修訂。

  譯製者附言:
  ===========
      簡體中文教程翻譯版之譯製者爲梁昌泰 <beos@turbolinux.com.cn>,還有
      另一個聯繫地址:linuxrat@gnuchina.org。

      繁體中文教程是從簡體中文教程翻譯版使用 Debian GNU/Linux 中文項目小
      組的於廣輝先生編寫的中文漢字轉碼器  autoconvert 轉換而成的,並對轉
      換的結果作了一些細節的改動。

  變動記錄:
  =========
      2012年10月01日 趙濤 <alick9188@gmail.com>
      將 vimtutor 中譯版從 1.5 升級到 1.7。

      2002年08月30日 梁昌泰 <beos@turbolinux.com.cn>
      感謝 RMS@SMTH 的指正,將多處錯誤修正。

      2002年04月22日 梁昌泰 <linuxrat@gnuchina.org>
      感謝 xuandong@sh163.net 的指正,將兩處錯別字修正。

      2002年03月18日 梁昌泰 <linuxrat@gnuchina.org>
      根據Bram Molenaar先生在2002年03月16日的來信要求,將vimtutor1.4中譯
      版升級到vimtutor1.5。

      2001年11月15日 梁昌泰 <linuxrat@gnuchina.org>
      將vimtutor1.4中譯版提交給Bram Molenaar和Sven Guckes。
相關文章
相關標籤/搜索