Vim 教程

功能

  1. 命令行模式下的文本编辑器。
  2. 根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。
  3. 使用方式: vim filename 1. 如果已有该文件,则打开它。 2. 如果没有该文件,则打开个一个新的文件,并命名为 filename

模式

  1. 一般命令模式 默认模式。
    • 命令输入方式:可以复制、粘贴、删除文本等。
  2. 编辑模式一般命令模式 里按下i,会进入编辑模式。按下ESC会退出编辑模式,返回到一般命令模式
  3. 命令行模式一般命令模式里按下:/?三个字母中的任意一个,会进入命令行模式。命令行在最下面。可以查找,替换,保存,退出,配置编辑器等。

操作

一般模式切换到编辑模式(常用)

  1. i:在光标所处位置直接开始
  2. a:在光标所处位置的下一个字符开始
  3. o:在光标所处位置的下一行开始
  4. r:取代当前光标处的字符,然后开始
  5. [ESC]:退出编辑模式,回到一般模式

光标移动操作(*)

  1. h左箭头键:光标向移动一个字符
  2. j向下箭头键:光标向移动一个字符
  3. k向上箭头键:光标向移动一个字符
  4. l向右箭头键:光标向移动一个字符
  5. n<SPace>:n为数字,光标向右移动这一行的n个字符
  6. n<Enter>:n为数字,光标向下移动n行
  7. 0或者功能键[Home]:光标移动到本行开头
  8. $或者功能键[END]:光标移动到本行末尾
  9. G:光标移动到最后一行
  10. :nnG:n为数字,光标移动到第n行
  11. gg:光标移动到第一行,相当于1G

查找、替换操作

  1. /word:向光标之下寻找第一个值为word的字符串
  2. ?word:向光标之上寻找第一个值为word的字符串
  3. n:重复前一个查找操作
  4. N:反向重复前一个查找操作
  5. :n1,n2s/word1/word2/g: n1n2为数字,在第n1n2行之间寻找word1这个字符串,并将该字符串替换word2
  6. :1,$s/word1/word2/g: 将全文的word1替换为word2
  7. :1,$s/word1/word2/gc:将全文的word1替换为word2,且在替换前要求用户确认

注:如果是替换路径可以用#代理/,例如::1,$s#media#/img/hugo/04-python_string#gc

文本操作

(可搭配数字+<Enter>/<Space>、0、G、$ 等使用,达到预期组合效果)

  1. v:选中文本
  2. d: 删除选中的文本
  3. dd: ** 删除当前行**
  4. y: ** 复制选中的文本**
  5. yy: ** 复制当前行**
  6. p:将复制的数据在光标下一行/下一位置 粘贴
  7. u:撤销
  8. ctrl + r: 取消撤销
  9. > : 将选中的文本整体向右缩进一次
  10. < : 将选中的文本整体 向左缩进一次

命令行操作

  1. :w : 保存
  2. :w! : 强制保存
  3. :q : 退出
  4. :q! : 强制退出
  5. :wq : 保存并退出
  6. :set paste : 设置成粘贴模式,取消代码自动缩进
  7. :set nopaste : 取消粘贴模式,开启代码自动缩进
  8. :set nu : 显示行号
  9. :set nonu : 隐藏行号
  10. :noh 关闭查找关键词高亮

gg=G :将全文代码格式化

Ctrl + q : 当vim卡死时,可以取消正在执行的命令

异常处理

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