vim常用操作合集

基本操作:hjkl
当前位置插入:i
当前位置补充:a
当前行换行插入:o
当前行上一行插入:O
替换字母w为a,移动到w上:ra
进入替换模式:ctrl + r
向前寻找可变函数名: ctrl + P
向后寻找可变函数名: ctrl + N
到文件首部:gg
到文件尾部:G
到文件第50行:50G
删除某个字母:x
删除某行:dd
删除两行:2dd
在视图模式下选中后删除:d
删除一个词:dw
删除2个词:d2w
删除到行尾:d$
删除到行首:d^

--------- y 代表复制到缓存中-----------
yy 复制当前行整行的内容到vi缓冲区
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi缓冲区
p 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)

/word 从上而下查 /是从上而下写的吧
?word 从下而上查找 字符在哪儿呢(?)回头找找吧
n 定位下一个匹配的 相当于向下查找下一个 next
N 定位上一个匹配的 相当于向上查找上一个

:s/1/2 搜索当前行第一个1并用2代替 search
:s/1/2/g 搜索当前行所有的1并用2代替 global
:#,#s/1/2/g 在#,#间搜索所有1并用2替换
:%s/1/2/g 在整个文档中将1替换为2 100%(全部)
:s/1/2/c 每次替换都给出提示确认 cue提示

转载于https://www.cnblogs.com/doseoer/p/6241443.html


  • 複製某字串

    狀況一: 獨立的單字 (以空白或標點符號分隔開的)
    yw
    2yw (複製二個單字)

    狀況二: 非獨立的單字
    先按 v 再移動游標到結束的地方 (以游標為準), 再按 y


  • 視窗操作

    逗號是分隔用,勿輸入。以第一組按鍵為例,先按CTRL及w鍵,放開後按n鍵(大小寫有差)。

    Ctrl + w, n 以水平軸為分界,新開一個視窗
    Ctrl + w, s 以水平軸為分界,分割出一個新視窗,並且開啟剛剛游標所在視窗的檔案
    Ctrl + w, v 以垂直軸為分界,新開一個視窗,並且開啟剛剛游標所在視窗的檔案
    Ctrl + w, f 將游標所指檔案名稱另開在新的水平視窗
    Ctrl + w, x 將水平/垂直視窗,上下/左右對換
    Ctrl + w, R 將視窗都向上移動,最上方的視窗移到最下方 (rotate)
    Ctrl + w, r 將視窗都向下移動,最下方的視窗移到最上方 (rotate)
    Ctrl + w, o 關閉游標所在視窗以外所有視窗 (only one)
    Ctrl + w, c 關閉游標所在視窗,不能關閉最後一個視窗
    Ctrl + w, q 關閉游標所在視窗,若是最後一個視窗則自動離開vim
    Ctrl + w, _ 將游標所在視窗列數(高度)放到最大,其它視窗只保留一列/行內容及一列檔名
    Ctrl + w, 數字_ 將游標所在視窗高度設為指定列數
    Ctrl + w, | 將游標所在視窗行數(寬度)放到最大,其它視窗只保留一列/行內容及一列檔名
    Ctrl + w, 數字| 將游標所在視窗寬度設為指定行數
    Ctrl + w, = 讓所有視窗等高(目前所在視窗由winheight、winwidth指定)
    Ctrl + w, N- 減少目前視窗高度N列,N可省略,預設為1
    Ctrl + w, N+ 增加目前視窗高度N列,N可省略,預設為1
    Ctrl + w, t 切換游標到最上方視窗
    Ctrl + w, b 切換游標到最下方視窗
    Ctrl + w, 上、下、左、右方向鍵 切換游標到上/下/左/右方視窗
    Ctrl + w, k, j, h, l 方向鍵 切換游標到上/下/左/右方視窗(即一般模式以字母鍵移動游標)
    Ctrl + w, K, J, H, L 方向鍵 將游標所在視窗向上/下/左/右視窗(這一組是移動視窗,上一組是移動游標)

    註:所有的CTRL+W開頭按鍵亦可以下列方式操作

      CTRL + w, n === CTRL + w, CTRL + N (變大寫)
    

  • 復原的操作

    復原上一次動作(無限次數) ==> u
    取消上一次復原 ==> CTRL + r (Windows版的gvim選單中是寫^R,但是我測試時似乎大小寫均可)


  • 標記的運用

    做標記:
    m字母

    游標跳到標記處
    字母 跳到標記時位置(列與行都一樣) '字母 跳到標記那一列第一個字母/數字出現處,如同按字母再按^

    以往都是用:列號1,列號2再加個命令,現在可以變成:
    先到列號1,按mt
    再到列號2,按mb
    以後使用時就輸入:'t,'b 命令


  • 外部命令

    單純執行外部命令
    :!命令

    執行外部命令並將輸出結果插到目前編輯中檔案
    :r !命令

    把列號1到列號2指定資料丟給外部程式處理後再取回來(假設列號1已用mt標記;列號2已用mb標記)
    :'t,'b !sort 't到'b排序
    :'t,'b !awk '{print 2 " " $1}' 將第一、二、三行資料反過來放,如下所示:

            aaa bbb ccc               ccc bbb aaa
            xxx yyy zzz   變成->        zzz yyy xxx
            111 222 333               333 222 111
    

    參考資料:http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html


以上转载于https://github.com/hdl645/ke/blob/master/vim

你可能感兴趣的:(vim常用操作合集)