Skip to content

Vim

基本概念

Vim 是一款高度可配置的文本编辑器,以其高效性和强大的功能著称。(Vi IMproved)是 Bram Moolenaar于 1991 年发布的,作为 Unix 系统上经典编辑器 Vi 的增强版。Vim保留了 Vi 的核心功能,同时增加了许多新特性。我们可以在终端下使用纯键盘操作该文本编辑器,可以进行二次开发,也可以安装拓展

三大模式

  • 正常模式:默认进入Vim处于正常模式,一般用于阅读文件,可以使用快捷键批量修改文件
  • 编辑模式:一般用于编辑文件,输入内容
  • 行底模式:一般用于对Vim进行临时配置,或者执行一些高级操作

三大模式转换

  • 正常模式-->编辑模式:输入i

    正常模式进入编辑模式快捷键:

    • i:在光标的前方进入
    • a:在光标的后方进入
    • I:光标跳转到行首进入
    • A:光标跳转到行尾进入
    • o:在光标下一行插入一个空白行,进入光标在空白行开始处
    • O:在光标上一行插入一个空白行进入
  • 编辑模式-->正常模式:输入Esc

  • 正常模式-->行底模式:输入: (shift+:)

  • 行底模式-->正常模式:输入Esc

正常模式的常用操作

光标跳转

  • 方向键可移动光标,hjkl可以代替左下上右的方向键
  • 光标跳转到文件开头按gg;光标跳转到文件最后一行按G (shift+g)
  • 光标向上跳转n行:按n加减号;光标向下跳转n行:按n加回车
  • nG:光标跳转到第n
  • 打开文件直接将光标放在第n行:vim 文件名 +n

删除代码

  • x:删除一个字符,等价于编辑模式下按删除键

  • nx:删除光标出开始n个字符(向后删除,包括光标处)

  • dw/de:光标落在字符串开始位置,则删除一个连续的字符串,若光标位于中间则删除后面部分到空格

    • dw:被删除的字符串后面的空格一起被删除
    • de:被删除的字符串后面的空格保留
  • d$:从光标处删除到行尾

  • d^:从光标处删除到行首

  • dG:从光标处删除到文件某尾

  • dgg:从光标处删除到文件开头

  • dd:删除光标所在的一行代码(这一行的位置被下一行顶掉)

  • ndd:删除光标往下n行代码(包括光标这一行)删除超过2行底部会提示删了几行

    若按了n后不想删除可以按方向键左右则可以撤销输入的数字

复制代码

  • yy:复制光标所在一行的代码,在新的地方按p则可以将复制的内容进行粘贴(粘贴到光标的下一行),按P则粘贴到光标上一行
  • nyy:复制光标所在往下n行代码(包括光标那行)

移动(剪切)代码

移动(剪切)代码就是先删除再粘贴

  • dd:剪切光标所在一行的代码,在新的地方按p则可以将复制的内容进行粘贴(粘贴到光标的下一行),按P则粘贴到光标上一行
  • ndd:剪切光标所在往下n行代码(包括光标那行)

替换代码

  • r:替换一个字符,输完r后直接输入想换的字符
  • cw:替换一个字符串,效果等于先dw再进入编辑模式
  • R:进入替换模式,输入一个字符替换一个字符

撤销操作

  • u:撤销上次操作,不保存退出可撤销到最开始修改的地方
  • ctrl+r:取消撤销操作,恢复被撤销的内容

编辑模式的常用操作

  • ctrl+p/n:自动补全,方便以存在变量名的输入
  • ctrl+i:缩进,相当于Tab
  • ctrl+j/m:回车,相当于enter
  • ctrl+c:相当于Esc

自定义组合按键

Vim进行配置:

  1. 打开Vim配置文件:vim ~/.vimrc
  2. 写入配置文件
  3. 保存退出,下次打开vim就长期有效

行底模式的常用操作

  • 设置行号::set nu (只是临时的、每次打开需要重新设置)
  • 去掉行号::set nonu
  • 保存::w
  • 不保存退出(会出提示)::q
  • 强制执行退出::q!
  • 保存并退出::wq
  • 保存并退出::x
  • 加密::X (密码保存不能用zz,要用:wq保存)
  • 取消加密::set key= (等号后面右空格)再保存退出使其生效,若修改密码直接用新密码代替空格
  • 执行系统命令::!系统命令,如:!ls,查看外面的文件名称
  • 查询key关键字位置::/key(光标出现在第一个关键字的那一行,按n键去下一个关键字所在的行,N向上翻,去上一个关键字
最近更新