Published on

学习 VI 编辑器

Authors
  • avatar
    Name
    Arvin Wei
    Twitter

vim 常用的有两种模式:Normal 和 Insert ,打开文件,默认进入的是 Normal 模式

键盘组合命令何其多,使用多时,还是停留在 h, j, k, l 的程度,翻出旧文,发现好多命令如同初见。记下,勉励之

移动光标

上下移动

    j           向下移动,一行,光标不会发生左右移动
    + or enter  向下移动,光标会移动到下一行的行首
    k           向上移动,一行,光标不会发生左右移动
    -           向上移动,光标会移动到上一行的行首
    H           移动光标到当前屏幕的第一行
    L           移动光标到当前屏幕的最后一行
    M           移动光标到当前屏幕的中间行
    nH          移动光标到当前屏幕的第一行的后n行
    nL          移动光标到当前屏幕的最后一行的前n行
    gg          移动到当前文档的第一行
    G           移动到当前文档的最后一行
    nG          移动到当前文档的第n行
    h, j, k, l  前面可以跟阿拉伯数字,用以移动多行或多个字符
    (           移动到当前句子的开始
    )           移动到下一句的开始
    {           移动到当前段落的开始
    }           移动到下一个段落的开始

左右移动

    h           向左移动
    l           向右移动
    0           数字0 移动光标所在行的行首
    ^           移动光标到当前行的第一个非空字符上
    n|          移动光标到当前行的第n列
    $           移动光标所在行的行尾
    b           向后移动,一次移动一个英文单词或英文符号,
    B           向后移动,一次移动一个英文单词,跳过英文符号
    e
    w           向前移动,一次移动一个英文单词或英文符号
    E
    W           向前移动,一次移动一个英文单词,跳过英文符号
    e, E        光标落在单词最后一个字符上
    b, B, w, W  光标落在单词第一个字符上

进入插入模式

    i           光标所在字符的前面插入 (insert)
    a           光标所在字符的后面插入 (append)
    o           小写的 o 激活光标所在行的下一行
    O           大写的 o 激活光标所在行的前一行

删除

    s           删除光标所在位置的后一个字符,并进入插入模式
    S, cc       删除整行,进入插入模式
    dd          删除一行
    2dd         删除两行
    x           删除光标所在位置之后的字符
    X           删除光标所在位置之前的字符
    dw          删除光标所在位置的到下一个空格之间的字符包括该空格
                如果想保留空格使用 dE
    cw          删除光标所在位置的后一个单词,并且激活插入模式
    cb          删除光标所在位置的前一个单词,并且激活插入模式
                  如果是中文,则会删除到标点符号前的所有单词。
    c0          删除从光标到该行的开始
    c$          删除从光标到该行的结束
    D           删除光标所在位置到该行的行尾
    c$, C       删除光标所在位置到该行的行尾,进入插入模式

替换操作

    r           替换单个字符
    R           进入替换模式,输入的字符会替换原有的字符,除非按ESC退出

拷贝和粘帖

    yy          拷贝一行,在命令模式下输入p,粘帖拷贝的文本
                Y效果等同于yy
    yw          拷贝光标所在位置到下一个空格之间的字符
    y0          拷贝光标所在位置到行首之间的字符
    y$          拷贝光标所在位置到行尾之间的字符
    p           会将缓冲区的文本插入到光标所在位置的下一行中,
                如果缓冲区为空,则插入空行
    P           插入文本到光标所在位置的前一行,单独一行

撤销操作

    u           撤销以前的操作
    ctrl + r    恢复撤销

翻屏

    ctrl + F    scroll forward one screen
                向下移动一屏
    ctrl + B    scroll backward one screen
                回退一屏
    ctrl + D    scroll forward half screen down
                向下移动半屏
    ctrl + U    scroll backward half screen up
                回退半屏
    z + Enter   Move current line to top of screen and scroll
                移动当前行到屏幕的最顶端
    z.          Move current line to center of screen and scroll
                移动当前行到屏幕的中央
    z-          Move current line to bottom of screen and scroll
                移动当前行到屏幕的最底部
    [line]z     z前面可以跟数字,移动光标到指定的行号

其它

    ctrl + ~    大写字符转换为小写,小写字符转换为大写
    ctrl + l    重绘、刷新当前屏幕
    .           重复上一次所执行的操作