一:退出vim
    1.q(quit):退出Vi
    2.w(write):存盤
    3.w + 文件名:另存為指定文件
    4.w !+ 文件名:另存為指定文件,如該文件已存在,覆蓋已有文件
    5.wq(與:x等價(jià)):存盤退出
    6.q!:不存盤退出
    7.wq!:強(qiáng)制存盤退出
    8.ZZ:存盤并退出Vi
二:移動(dòng)命令
    n上下左右(可以用方向鍵直接移動(dòng))
    h 左,或 Backspace 或 方向鍵
    j 下,或 回車 或 + 或 方向鍵
    k 上,或 - 或 方向鍵
    l 右,或 Space 或 方向鍵
    移動(dòng)到行首
        ^ (移至第一個(gè)非空字符)或 Home鍵(移至行首,包括空字符)
    移動(dòng)到行尾
        $ 或 End鍵
    移動(dòng)到當(dāng)前頁的首行
        H
    移動(dòng)到當(dāng)前頁的中間行
        M
    移動(dòng)到當(dāng)前頁的最后一行
        L
    以word為單位移動(dòng)
        w
    顯示行號
        :set number 或 :set nu
    移動(dòng)到第n行
        :n
    向上滾動(dòng)一屏(即Pagedown)
        Ctrl + b(backward)
    向下滾動(dòng)一屏(即Pageup
        Ctrl + f (forward)
    屏幕向下滾動(dòng)一行
        Ctrl + e
三. 刪除命令
    刪除光標(biāo)所在行
        dd(delete):刪除光標(biāo)所在行,下一行自動(dòng)上移
        DD :刪除光標(biāo)所在行,下一行不上移
    刪除一個(gè)字符
        x:刪除光標(biāo)所在字符
        X:刪除光標(biāo)前的字符
    刪除n個(gè)字符
        nx:刪除從光標(biāo)處字符開始的n個(gè)字符
        nX:刪除從行首開始的n個(gè)字符
    刪除從光標(biāo)處開始到本行末尾的所有字符
        D
四.復(fù)制與粘貼
    yank和put分別對應(yīng)Windows下的Copy和Paste
    yy(yank):復(fù)制當(dāng)前行
    nyy: 復(fù)制多行
    yw:復(fù)制一個(gè)詞
    p(put):粘貼到光標(biāo)后
    P:粘貼到光標(biāo)前
    多行復(fù)制,粘貼僅能在視窗模式下進(jìn)行
五.搜索和替換
    n搜索
    /word  向下搜索
    ?word  向上搜索
    n  繼續(xù)尋找
    N  繼續(xù)尋找,反向搜索游標(biāo)所在處的字符
    g*  同*,但部分符合即可
    替換
     :[range]s / pattern / string / [c,e,g,i]
    range:表示范圍,如:1,7  1,$  %  #
    pattern:被替換的字符串
    string:替換的字符串
    c(confirm) :替換前詢問
    e (error) :不顯示error
    g (global) :不詢問,整行替換
    i (ignore) :不區(qū)分大小寫
    eg:%s/Edwin/Edward/g表示在整篇文章中將Edwin替換成Edward;
六、其它
    0 – 到行首
    $ – 到行尾
    ^ – 到行首字母
    ( – 到上面一句或者上面一個(gè)代碼段
    ) – 到下面一句或者下面一個(gè)代碼段
    `. – 到最后一次修改的位置,注意這個(gè)`不是單引號,是1左邊的那個(gè)按鍵
    /<文字> – 搜索指定文字,找到之后使用n來跳到下一個(gè)相同單詞位置
    :<數(shù)值> – 轉(zhuǎn)跳到指定行數(shù)
    :$ – 轉(zhuǎn)跳到文件末尾,這個(gè)和G的作用相同,但是我覺得更加好記,因?yàn)楹娃D(zhuǎn)跳行數(shù)一樣,而且$一般被用來標(biāo)識末尾

    i – 插入模式,I也可以,還有a,A,但是個(gè)人感覺提高效率不明顯
    o – 在當(dāng)前行下面建立新行,對應(yīng)的有O,在當(dāng)前行上面,但是O很少用,除非你已經(jīng)到頂行而且要在上面插入一行.

    v – 進(jìn)入?yún)^(qū)塊選擇
    y – 復(fù)制已經(jīng)選擇的區(qū)塊
    yy – 復(fù)制當(dāng)前行
    d – 剪切已經(jīng)選擇的區(qū)塊
    dd – 剪切當(dāng)前行
    p – 粘貼已經(jīng)選擇的區(qū)塊

    . – 重復(fù)上次指令
    <數(shù)值><指令> – 重復(fù)執(zhí)行指定的指令,例如10dd,剪切10行

    % – 匹配花括號,方括號,括號等,用于例如跳轉(zhuǎn)到對應(yīng)的{}位置
    gd – 到達(dá)光標(biāo)所在處函數(shù)或者變量的定義處
    > – 縮進(jìn)代碼,在v下可用
    >> – 縮進(jìn)當(dāng)前行代碼
    < – 反縮進(jìn)代碼,在v下可用
    << – 反縮進(jìn)當(dāng)前行