VIM高頻使用快捷鍵及命令

syrchina發表於2017-02-16

快捷鍵:
到檔案頭尾:
    gg: 跳到檔案頭;
    GG: 跳到檔案尾;
滾屏
    ctrl+f: 下一屏
    ctrl+b: 上一屏
行進退:
    0: 跳到行首;
    $: 跳到行尾;
游標上次/下次位置:
    ctrl+o: 游標上次位置;
    ctrl+i: 游標下次位置;
括號左右跳:
    %: 跳到匹配括號的另一端;
跳到函式定義處:
    ctrl+]: 跳到函式定義處;
    ctrl+T: 返回原位置;
程式碼摺疊:
    indent摺疊命令:
    indent方式, vim會自動利用縮排進行摺疊, 我們可以使用現成的摺疊成果。我們可以在摺疊處輸入以下命令:
        zc 摺疊
        zC 對所在範圍內所有巢狀的摺疊點進行摺疊
        zo 展開摺疊
        zO 對所在範圍內所有巢狀的摺疊點展開
        [z 到當前開啟的摺疊的開始處。
        ]z 到當前開啟的摺疊的末尾處。
        zj 向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。
        zk 向上移動到前一折疊的結束處。關閉的摺疊也被計入。
    marker摺疊命令:
    marker摺疊方式時, 我們需要用標計來標識程式碼的摺疊, 系統預設是{{{和}}}。摺疊命令:
        zf 建立摺疊, 比如在marker方式下:
        zf56G, 建立從當前行起到56行的程式碼摺疊;
        10zf或10zf+或zf10↓, 建立從當前行起到後10行的程式碼摺疊。
        10zf-或zf10↑, 建立從當前行起到之前10行的程式碼摺疊。
        在括號處zf%, 建立從當前行起到對應的匹配的括號上去((), {}, [], <>等)。
        zd  刪除 (delete) 在游標下的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
        zD  迴圈刪除 (Delete) 游標下的摺疊, 即巢狀刪除摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
        zE  除去 (Eliminate) 視窗裡“所有”的摺疊。僅當 'foldmethod' 設為 "manual" 或 "marker" 時有效。
批量註釋與反註釋
    1.多行註釋:
        1. 首先按esc進入命令列模式下, 按下Ctrl + v, 進入列(也叫區塊)模式;
        2. 在行首使用上下鍵選擇需要註釋的多行;
        3. 按下鍵盤(大寫)“I”鍵, 進入插入模式;
        4. 然後輸入註釋符(“//”、“#”等);
        5. 最後按下“Esc”鍵。
        注: 在按下esc鍵後, 會稍等一會才會出現註釋, 不要著急~~時間很短的
    2.刪除多行註釋:
        1. 首先按esc進入命令列模式下, 按下Ctrl + v, 進入列模式;
        2. 選定要取消註釋的多行;
        3. 按下“x”或者“d”.
        注意: 如果是“//”註釋, 那需要執行兩次該操作, 如果是“#”註釋, 一次即可
搜尋
    1. /keyword: 搜尋keyword
    2. :noh: 即:nohlsearch, 取消搜尋高亮
    3. \gg: 搜尋游標下的單詞
    4. *: 在Normal下, 正向搜尋當前游標下的單詞
    5. #: 在Normal下, 反向搜尋當前游標下的單詞
    6. n: 繼續搜尋下一個匹配的單詞
    7. N: 繼續搜尋上一個匹配的單詞
替換
    %s/old/new/g 將檔案中所有的old模式替換為new
高亮標記:
    1. *: 高亮游標下的單詞;
    2. :noh: 取消搜尋高亮;
刪除單詞:
    1. dw: 刪除到下一個單詞開頭
    2. de: 刪除到本單詞末尾
    3. dE: 刪除到本單詞末尾包括標點在內
    4. db: 刪除到前一個單詞
    5. dB: 刪除到前一個單詞包括標點在內
刪除行尾空格:
    1. :% s/\s\+$//g
與Windows共享剪貼簿:
    1. 從win剪貼簿貼上到vim: "+p(冒號+加號+小寫p)
    2. 從vim放入win剪貼簿: "+y(冒號+加號+小寫y)
大小寫轉換:
    1. 先選中要轉換的文字, 按gU轉換為大寫
    2. 按gu轉換為小寫
格式化程式碼:
    1. 格式化全文: gg=G
    2. 自動縮排當前行: ==
    3. 格式化當前游標接下來的10行: 10=
    4. 格式化選定的行: v (向上下選擇)=
    5. 按照特定符號(如=)對齊: 安裝Tabular外掛, 然後 :Tab /= 即可
Tab與空格互換:
    在.vimrc中新增以下程式碼後,重啟vim即可實現按TAB產生4個空格:
        set ts=4 (注:ts是tabstop的縮寫,設TAB寬4個空格)
        set expandtab
    對於已儲存的檔案,可以使用下面的方法進行空格和TAB的替換: 
    TAB替換為空格: 
        :set ts=4
        :set expandtab
        :%retab!
    空格替換為TAB:
        :set ts=4
        :set noexpandtab
        :%retab!
    加!是用於處理非空白字元之後的TAB,即所有的TAB,若不加!,則只處理行首的TAB
儲存所有檔案:
    :wa


命令:
TlistOpen: 顯示函式列表;


外掛:
1. 參考線: https://github.com/Yggdroot/indentLine

相關文章