首页 > 代码库 > vim常用快捷键

vim常用快捷键

在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑. 因此能更快一点移动光标是很有用的.文中的c-表示ctrl,大小写敏感。光标定位
还需结合搜索。

=== 光标定位 ==
    
    h或^h         向左移一个字符

    j或^j或^n     向下移一行

    k或^p         向上移一行

    l或空格         向右移一个字符

    w             移到下一个字的开头

    W             移到下一个字的开头,忽略标点符号。默认的情况下W认为字符串时已空格分开的。

                    cp /mnt/marvell/main.sh /stv/ 

                    所以上面一行在W的选择下只有三个字符串,即 1 cp 2 /mnt/marvell/main.sh  3 /stv/ 

                    这与w时不一样的。


    e             移到下一个字的结尾

    E             移到下一个字的结尾,忽略标点符号

    b             移到前一个字的开头

    B             移到前一个字的开头,忽略标点符号同W
    

    |             移到当前行的第一列


    0             移到当前行的第一列字符处,会忽略行前的空白。


    n|             移到当前行的第n列

    ^             移到当前行的第一个非空字符

    $             移到当前行的最后一个字符

    return或+     移到下一行的第一个字符

    -             移到前一行的第一个非空字符

    L             移到屏幕的最后一行

    M             移到屏幕的中间一行

    H             移到屏幕的第一行
    
    G             移到文件的最后一行

    nG             移到文件的第n行



    (             移到句子的开头

    )             移到句子的结尾

    {             移到段落的开头 //我用的时候发现{只是移动到前一个空行 }移动到后一个空行首

    }             移到下一个段落的开头

      /**vim 第一列插入{来定义一个段落 */

    [[             回到段落的开头处

    ]]             向前移到下一个段落的开头处
    
    m(a-z)         用一个字母来标记当前位置,如用mz表示标记z

    ‘(a-z)         将光标移动到指定的标记,如用‘z表示移动到z
  
    ‘‘          此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查(此处时两个单引号不是双引号)
                找到某个单词后, 再输入此命令则回到上次停留的位置.

    ‘.          此命令相当好使, 它移动光标到上一次的修改行.

    `.          此命令相当强大, 它移动光标到上一次的修改点.

    %            从大括号的开始移动到大括号的结束位置
    
    :            后边加行号就是跳到这一行
    
    <C-O>       光标返回到以前的位置。相当于光标移动的“撤销”

    <C-I>       光标返回到后来的位置。相当于光标移动的“恢复”
    

    f                移动光标到当前行的字符a上,nf移动光标到当前行的第n个a字符上

    F              相反


=== 屏幕定位 ==

    c-e         将屏幕上滚一行

    c-y         将屏幕下滚一行

    c-u         将屏幕上滚半页

    c-d         将屏幕下滚半页

    c-b         将屏幕上滚一页

    c-f         将屏幕下滚一页

    z-return     将当前行置为屏幕的顶行

    nz-return     将当前行下的第n行置为屏幕的顶行

    z.             将当前行置为屏幕的中央

    nz.         将当前行上的第n行置为屏幕的中央

    z-             将当前行置为屏幕的底行

    nz-         将当前行上的第n行置为屏幕的底行