vim 基础快捷键

之前基本一直拿 vim 当 nano 用, 丝毫没有使用到 vim 的强大的快捷键和插件 这两天把 vim 的一些基础入门快捷键和知识补充了一下, 将常用的快捷键记录在此,方便自己忘了的时候翻看一下

个人 vimrc : https://github.com/ClayStan/my_vimrc/blob/master/.vimrc

参考: GitHub: Vim 中文学习资源整理收集 以及 知乎文章

Normal mode

0: 跳到行首

^: 跳到行首开始的第一个非空白字符

$: 跳到行尾

w: 跳到下一个单词开头

b: 跳到上一个单词开头

e: 跳到下一个单词结尾

ge: 跳到上一个单词结尾

fa: 移动到本行下一个为 a 的字符处

nfa: 移动到本行光标处开始的第 n 个 字符为 a 的地方

Fafa 一样,光标移动方向同 fa 相反

;, 当使用 f, F 关键字指定字符跳转的时候,使用 可以快速跳转到写一个指定的字符,, 是跳到前一个指定的字符

Insert mode

Normal mode to Insert mode

i: 在当前光标字符前插入

a: 在当前光标字符后插入

I: 在当前行首插入

A: 在当前行尾插入

o: 在下方开一新行,插入

O: 在上方开一新行,插入

Visual mode

Normal mode to Visual mode

v: 选中当前光标字符,并进入可视模式

V: 不同于小写 v,这时移动光标只会按行选择

<C-v>: 块选择模式,此时移动光标会选择一个矩形块

其他快捷键

在 Visual mode 中对选区生效

在 Normal mode 中需指定生效区域

  • 大小写操作

    gu: 变小写

    guu: 整行小写

    gU: 变大写

    gUU: 整行大写

    g~: 取反

    g~~: 整行取反

  • 删除操作

    s: 删除当前已选择的内容,并进入插入模式

    ​ Normal mode 默认删除光标后的一个字符

    c: 删除当前已选择的内容,并进入插入模式

    ​ Normal mode 需要手动指定,如 ch,c3l,cw,c3e

    d: 删除当前已选择的内容,不进入插入模式

    ​ Normal mode 需要手动指定,如 dl,d8h,dw,de

    x: 删除当前已选择的内容,不进入插入模式

    ​ Normal mode 默认删除光标后的一个字符

  • 缩进操作

    >: 右缩进

    >>: 整行右缩进

    <: 左缩进

    <<: 整行左缩进

    =: 自动缩进

  • More

    p: 粘贴于当前光标之后

    P: 粘贴于当前光标之前

    C: 删除至行尾并插入

    D: 删除至行尾

    S: 从当前行首个非空字符删除至行尾并插入

    r: 替代字符,将当前字符替代为紧跟着输入的字符

    R: 进入替代模式,将当前及之后的字符都替代为紧跟着输入的字符串,直到返回 Normal mode

插件快捷键

  1. nerdcommenter

    <leader>cc 注释所选区

    <leader>c\<space> 取反

    <leader>cu 取消注释

    <leader>cm 使用一组注释符注释多行

    <leader>c$ 注释从光标到行尾

    <leader>cA 将注释符添加到行尾并进入 insert mode

vim 分屏操作

  1. 在打开多个文件的时候分屏显示

    • 左右分屏

      vim -On file1 file2 …

    • 上下分屏

      vim -on file1 file2 …

  2. 在 vim 中分屏

    • 左右分屏

      <c-w> v

      :vsp file

    • 上下分屏

      <c-w> s

      :sp file

  3. 光标/窗口 移动

    光标: <c-w> h/j/k/l

    窗口: <c-w> H/J/K/L

  4. 关闭分屏

    <c-w> q