Guide

1. vimtutor

VIM Tutor - Version 1.7

vim自带的交互式教程, 输入vimtutor开始

2. 移动光标

  • h
  • j
  • k
  • l
  • Ctrl+Y 向下滚一行
  • Ctrl+E 向上滚一行
  • Ctrl+D 向下滚半屏
  • Ctrl+U 向上滚半屏
  • w 跳到下一单词开头
  • b 跳到上一单词开头
  • e 跳到下一单词结尾
  • 2w 跳两个单词
  • 0 移动到行首
  • ^ 移动到非空格行首
  • $ 移动到行尾
  • Ctrl+G 显示当前在文件中的行数
  • G 移动到最后一行行首
  • gg 移动到第一行行首
  • Ctrl+O 移动到前一光标位置(Old position)
  • Ctrl+I 移动到后一光标位置(In position)
  • :100 跳转到第100行
  • fH 当前行查找H, 并移动光标到H
  • tH 当前行查找H, 并移动光标到H前
  • '< 跳转到上一次可视选择的起始位置
  • '> 跳转到上一次可视选择的结束位置
  • '[ 跳转到粘贴的超始位置
  • '] 跳转到粘贴的结束位置
  • '^ 上一次插入模式开始的位置
  • '. 上一次修改的位置
  • o 在选区的开头和结尾间切换位置(当选中文本时使用)

3. 文本编辑

  • x 删除光标后一个字符
  • i 在光标位置开始插入
  • a 在光标位置后一个字符位置开始插入
  • c 剪切并进入插入模式
  • 选后d 仅删除
  • 选后s 删除并进入插入模式
  • 选后x 仅剪切
  • A 从当前行末非空字符处开始插入
  • I 从当前行首非空字符处开始插入
  • dw 删除一个单词, 包括单词后的空格
  • de 删除一个单词, 不包括单词后的空格
  • d$ 删除到行尾, 包含换行符
  • D 删除到行尾, 不包含换行符
  • 2dw 删除2个单词
  • dd 删除当前行
  • u 撤消上一修改
  • U 撤消当前行的所有修改
  • Ctrl+R 重新执行上一撤消的修改
  • P 在光标前粘贴
  • p 在光标后粘贴
  • rx 替换一个字符
  • Rxxx 替换多个字符
  • ce 剪切到词尾
  • c$ 剪切到行尾, 包含换行符
  • C 剪切到行尾, 不包含换行符
  • ci( 修改括号内文本(change inner)
  • dap 删除整个段落(delete around paragraph)
  • % 在匹配的两个括号间跳转, 支持(), [], {}
  • o 在下方插入新行
  • O 在上方插入新行
  • :s/old/new 替换当前行第一个old为new
  • :s/old/new/g 替换当前行所有old为new
  • s/\<old\>/new/g 替换独立单词old为new
  • :m,ns/old/new 替换第m行至第n行,每行第一个old为new
  • :m,ns/old/new/g 替换第m行至第n行,所有的old为new
  • :%s/old/new 替换文件中每一行第一个old为new
  • :%s/old/new/g 替换文件中所有的old为new
  • :'<,'>s/\%Vold/new/g 替换指定范围内的old为new(使用"\%V")
  • :'<,'>norm I# 在每行开头插入#(用于每行开头不对齐时)
  • :'<,'>norm A// 在每行末尾追加//(用于每行结尾不对齐时)
  • :'<,'>norm ^xx 删除开头的两个字符

4. 字符串搜索

  • /str 向后搜索并跳转到下一字符串为str的位置
  • /str n 多次按n, 执行多次向后搜索
  • N 多次按 N, 执行多次向前搜索
  • :set ic 忽略大小写(Ignore case)
  • :set noic 不忽略大小写
  • :set hls 高亮显示匹配结果(Highlight search)
  • :set nohls 不高亮显示
  • :set is 实时搜索输入字符的匹配结果(Incremental search)
  • :set nois 不实时搜索

5. 文件寄存器

  • :!ls -d */ 执行外部命令 ls -d */
  • :!dir 执行外部命令 dir
  • :w 保存
  • :q! 强制退出, 不保存修改
  • :wq! 强制退出, 保存修改
  • :r file.txt 插入文件内容
  • :r !ls 插入外部命令的输出
  • :e file.txt 打开文件
  • :e! 重新加载当前文件
  • :call rename('old.txt', 'new.txt') 重命名文件
  • :saveas file.txt 另存为
  • :let @+=@0 将寄存器"0内容复制到系统剪切板
  • :reg 查看所有寄存器的内容
  • :reg 0 查看"0寄存器的内容

6. 窗口操作

  • :new 创建水平分割窗口
  • :vnew 创建垂直分割窗口
  • :split 复制水平分割窗口
  • :vsplit 复制垂直分割窗口
  • Ctrl+W W 在不同窗口间切换
  • Ctrl+W H 切换到左边的窗口
  • Ctrl+W L 切换到右边的窗口
  • Ctrl+W J 切换到下边的窗口
  • Ctrl+W K 切换到上边的窗口

7. 选择区域

  • gv 重新选中上次的区域
  • vip 选取当前段落
  • vi(``vi[``vi{ 选择括号其中内容, 不包括本身
  • va(``va[``va{ 包括括号本身
  • viw 选择单词
  • vaw 选择单词和后面的空格
  • viW 选择一整句(用空格分隔)
  • vaW 选择一整句和后面的空格
  • vit 选择一个标签内()
  • vat 包括标签本身
  • 保存选中内容到新文件

      v
      选择要保存的内容
      y
      :new
      p
      :w file.txt
    
  • 保存选中行到新文件

      V
      选择要保存的行
      :w file.txt
    

8. 宏录制

  • qa 开始录制宏到寄存器a中
  • q 停止录制
  • @a 执行一次寄存器a中的宏
  • @@ 重复最近一次执行的宏
  • 10@a 重复执行宏a 10次

9. 辅助命令

  • Ctrl+D
    • 命令行模式下, 显示补全命令列表
    • 插入模式下, 减少缩进(增加为Ctrl+T)
    • 普通模式下, 向下滚半屏
  • :scriptnames 列出vim加载的脚本
  • :source ~/.vimrc 手动加载配置文件
  • gg=G 全文自动缩进
  • :Ctrl+P 向上浏览历史命令
  • :Ctrl+N 向下浏览历史命令
  • :Ctrl+A 光标下的数字增加1(先按数字x, 再按Ctrl+A可增加步长x)
  • ~ 光标下的字母在大小写间切换
  • :Ctrl+X 光标下的数字减小1(先按数字x, 再按Ctrl+X可减小步长x)
  • u 转小写
  • U 转大写
  • . 重复执行上一次的命令
  • J 合并选择的行
  • '<,'>g/^\s*$/d 删除空行

10. 帮助

  • :help 进入帮助文档
  • :help w
  • :help c_CTRL-D
  • :help insert-index
  • :help user-manual

11. References

  1. https://gitlab.com/wsdjeg/vim-galore-zh_cn vim-galore-zh_cn.7z
Copyright © gendloop 2024 all right reserved,powered by Gitbook该文件修订时间: 2026-02-10 13:48:53

results matching ""

    No results matching ""