02.jpg

模式

  • 一般命令模式(默认模式)
    命令输入方式:类似于打游戏放技能,按不同字符,即可进行不同操作。可以复制、粘贴、删除文本等。
  • 编辑模式
    在一般命令模式里按下i,会进入编辑模式。按下ESC会退出编辑模式,返回到一般命令模式。
  • 命令行模式
    在一般命令模式里按下: / ? 三个字母中的任意一个,会进入命令行模式。命令行在最下面。可以查找、替换、保存、退出、配置编辑器等。

    操作

    | 按键 | 功能 |
    | —- | —- |
    | h | 光标向左移动一个字符 |
    | j | 光标向下移动一个字符 |
    | k | 光标向上移动一个字符 |
    | l | 光标向右移动一个字符 |
    | n``<Space> | n代表数字,按下数字再按空格,光标会向右移动n个字符 |
    | 0[Home] | 光标移动到本行开头 |
    | $[End] | 光标移动到本行末尾 |
    | G | 光标移动到最后一行 |
    | :nnG | 光标移动到第n行 |
    | gg | 光标移动到第一行,相当于1G |
    | n``<Enter> | 光标向下移动n行 |
    | /word | 往光标以下寻找第一个值为word的字符串 |
    | ?word | 往光标以上寻找第一个值为word的字符串 |
    | n | 重复前一个查找操作 |
    | N | 反向重复前一个查找操作 |
    | :n1,n2s/word1/word2/g | 在n1行与n2行之间寻找word1这个字符串,并将其替换为word2 |
    | :1,$s/word1/word2/g | 将全文的word1替换为word2 |
    | :1,$s/word1/word2/gc | 将全文的word1替换为word2,并且在替换前要求用户确认 |
    | v | 选中文本 |
    | d | 删除选中的文本 |
    | dd | 删除当前行 |
    | y | 复制选中的文本 |
    | yy | 复制当前行 |
    | p | 将复制的数据在光标的下一行 / 下一个位置粘贴 |
    | u | 撤销 |
    | Ctrl+r | 取消撤销 |
    | > | 大于号,将选中的文本整体向右缩进一次 |
    | < | 小于号,将选中的文本整体向左缩进一次 |
    | :w | 保存 |
    | :w! | 强制保存 |
    | :q | 退出 |
    | :q! | 强制退出 |
    | :wq | 保存并退出 |
    | :set paste | 设置为粘贴模式,取消代码自动缩进 |
    | :set nopaste | 取消粘贴模式,开启代码自动缩进 |
    | :set nu | 显示行号 |
    | :set nonu | 隐藏行号 |
    | gg=G | 将全文代码格式化 |
    | :noh | 关闭查找关键词高亮 |
    | Ctrl+q | 当vim卡死时,可以取消当前正在执行的命令 |

注意:每次用vim编辑文件时,会自动创建一个 .filename.swp 的临时文件。如果打开某个文件,该文件的swp文件已存在就会报错。此时有两个解决方法:1.找到正在打开该文件的程序并退出它。2.直接删掉该swp文件。