vim 操作命令指北

#Linux 2021/04/27 22:14:12
目录
  1. 移动
  2. 进入插入模式
  3. 命令行模式下退出 vim
  4. 普通模式下退出 vim
  5. 普通模式下删除 vim 文本信息
  6. vim 重复命令
  7. 游标的快速跳转
  8. 复制及粘贴文本
  9. 字符的替换及撤销
  10. 缩进操作
  11. 快速查找
  12. 高级查找

vim 是从 vi 衍生出来的,兼容 vi 并且拥有一些新的特性。
vim 的三种基本模式

  • 普通模式 移动光标,删除文本等,是 vim 启动后的默认模式
  • 插入模式 向编辑文件插入文本
  • 命令行模式 执行命令 (:)(/)(?)(!)
移动

hljkw 移动到下一个单词 b 移动到上一个单词

进入插入模式
  • i 在当前光标处进行编辑
  • a 在光标后插入编辑
  • I 在行首插入 A 在行末插入
  • o 在当前行后插入一个新行
  • O 在当前行前插入一个新行
  • cw 替换从光标所在位置后到一个单词结尾的字符
命令行模式下退出 vim
  • :q! 强制退出,不保存 :q 退出
  • :wq! 强制保存并退出
  • :w<文件路径> 另存为 :saveas 文件路径 另存为
  • :x 保存并退出 :wq保存并退出
普通模式下退出 vim
  • Shift + zz
普通模式下删除 vim 文本信息
  • x 删除游标所在的字符 (Delete 同)
  • X 删除游标所在的前一个字符
  • dd 删除整行 (ndd 删除 n 行)
  • dw 删除一个单词
  • d$或 D 删除至行尾
  • d^ 删除至行首
  • dG 删除至文档结尾处
  • d1G 删除文档至文档首部
vim 重复命令

在普通模式下,.(小数点) 表示重复上一次的命令操作

在命令前面添加数字 N,表示重复命令的次数

  • 10x 删除 10 个连续字符
  • 3dd 删除 3 行文本
  • d5w 删除连续 5 个单词
游标的快速跳转

在命令行里输入set nu以显示行号

  • 行间跳转 nG 或 ngg 游标移动到第 n 行 gg 游标移动到第一行 G 或 Shift + g 移动到最后一行 Ctrl + o 快速回到上一次光标位置
  • 行内跳转 w 到下一个单词的开头 e 到当前单词的结尾 b 到前一个单词的开头 ge 到前一个单词的结尾 0 或^ 到行头 $ 到行尾 f<字母> 向后搜索字母并跳转到第一个匹配的位置 F<字母> 向前搜索字母并跳转到第一个匹配的位置 t<字母> 向后搜索字母并跳转到第一个匹配位置之前的一个字母 T<字母> 向前搜索字母并跳转到第一个匹配位置之后的一个字母
复制及粘贴文本
  • yy 复制游标所在的整行
  • y^或 y0 复制到行首,不包含光标所在字符
  • y$ 复制到行尾,包含包括所在字符
  • yw 复制一个单词 (ynw 复制 n 个单词)
  • yG 复制到文本末 y1G复制到文本开头
  • p(小写) 粘贴至光标后 P(大写) 粘贴至光标前
字符的替换及撤销
  • r+ 带替换字符 将游标所在字符替换为指定字母
  • R 连续替换,直到按下 Esc
  • cc 替换整行,即删除游标所在行,并进入插入模式
  • cw 替换一个单词,即删除一个单词,并进入插入模式
  • C(大写) 替换游标以后至行末
  • ~ 反转游标所在字母大小写
  • u 撤销一次操作 ({n}u 撤销 n 次操作)
  • U(大写) 撤销当前行的所有修改
  • Ctrl + r 撤销’撤销’的操作
缩进操作
  • >> 整行向右缩进
  • << 整行向左回退
  • 在命令行输入set shiftwidth=n 可以设置缩进长度
  • 命令行模式下输入ce 使光标所在行内容居中,同理还有 rile
快速查找
  • 普通模式下输入 / 然后输入要查找的字符串,回车后就会进行查找。
  • ?/ 功能相同,只不过 ? 是在当前位置向上查找而 / 是在当前位置向下查找
  • 进入查找之后,n 是查找下一个内容,N 是查找上一个内容
  • 命令行noh 然后回车即可取消搜索
高级查找
  • 普通模式下输入 \* 寻找游标所在处的单词
  • 普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找
  • 普通模式下输入 g\*\* ,但部分符合该单词即可
  • 普通模式下输入 g\#\# ,但部分符合该单词即可