
VIM从入门指南本文整合了VIM基础操作、宏录制、vimPlus插件使用及VIM打造IDE的完整内容适合从零开始的VIM学习者。一、VIM基础工作模式与基本操作1.1 VIM与Vi的关系VIMVi IMproved是从Vi发展而来的文本编辑器功能更强大。日常使用的vi命令实际上调用的就是VIM编辑器。1.2 工作模式VIM有三种主要工作模式模式进入方式用途命令模式启动默认移动光标、复制粘贴、删除等文本模式i/a/o等编辑文本内容末行模式: / ?保存、退出、替换、搜索1.3 命令模式常用操作移动光标H - 前 J - 下 K - 上 L - 后 0 - 行首 $ - 行尾 gg - 文本首 G - 文本尾 nG - 跳转到第n行如 500G 跳转到第500行删除操作x - 删除光标后的单个字符 X - 删除光标前的单个字符 dw - 删除单词光标需在单词首字母 D0 - 删除光标前的内容 D - 删除光标后的内容 dd - 删除光标所在行 ndd - 删除光标后的n行复制粘贴yy - 复制所在行 nyy - 复制光标后的n行 p - 在光标下新建一行粘贴/在当前光标后粘贴 P - 在光标所在行粘贴/在当前光标前粘贴撤销操作u - 撤销 Ctrlu - 反撤销查找/字符串 - 向下查找 n - 查找下一个 N - 查找上一个 # - 查找光标所在单词1.4 文本模式a - 在光标后插入 A - 在行尾插入 i - 在光标前插入 I - 在行首插入 o - 在下一行插入 O - 在上一行插入 s - 删除光标后字符并插入 S - 删除整行并插入1.5 末行模式:行号 - 跳转到指定行 :s/old/new/g - 替换当前行 :%s/old/new/g - 替换全文 :27,30s/old/new/g - 替换指定行范围 :!命令 - 执行外部命令1.6 分屏操作:sp - 水平分屏 :vsp - 垂直分屏 Ctrlww - 切换分屏 :vertical res 数字 - 改变左右分屏比例 :res 数字 - 改变上下分屏比例二、VIM原生高级功能2.1 括号匹配跳转按%可跳转到配对的括号小括号、方括号、大括号常用于查看if、while的范围。2.2 万能方括号[( - 移动到匹配的左括号 ]) - 移动到匹配的右括号 [/ - 在注释之间移动 [# - 在编译预处理之间移动 [[ - 回到当前函数最开始的左大括号 [i - 查看变量声明 [Ctrli - 跳转到函数定义 [d - 查看宏名的定义三、宏录制自动化重复操作3.1 什么是宏录制在VIM中所有重复性的输入工作都可以通过录制宏来完成。简单来说就是录下你的操作然后让VIM重复执行。3.2 基本使用录制宏按ESC切换到普通模式按q键再按一个字母如a作为寄存器名屏幕下方显示recording字样执行你的操作按q结束录制查看宏:register a 查看寄存器a中的宏内容执行宏a 执行宏a一次 na 执行宏a n次删除宏qaq 清空宏a :let a 命令方式清空3.3 实战示例示例1给每行行首加上注释//1. gg 来到首行 2. qa 开始录制 3. 0 来到行首 4. i 进入插入模式 5. 输入 // 6. ESC 退出插入模式 7. j 来到下一行 8. q 结束录制执行na即可为n行添加注释。示例2给文本加上递增序号1. 给第一行加上序号 1. 2. 光标放在第二行按 qa 开始录制 3. k 来到上一行 4. 0 来到行首 5. yf. 复制到点号 6. j 来到下一行 7. 0 来到行首 8. Shiftp 粘贴 9. 光标移到数字上按 Ctrla 让数字加1 10. j 来到下一行 11. q 结束录制四、VIM配置文件配置文件路径系统级/etc/vim/vimrc用户级~/.vimrc常用配置set number 显示行号 set nowrap 不自动换行 set tabstop4 TAB键表示的空格数 set shiftwidth4 缩进表示的空格数 set autoindent 智能自动缩进 set hlsearch 搜索高亮 set incsearch 实时匹配搜索 F2清除屏幕高亮 nmap f2 :nohcr imap f2 escf2a五、使用ctags实现代码跳转5.1 安装sudoapt-getinstallctags5.2 生成tags文件# 递归生成当前目录及子目录的tagsctags-R# 为C/C项目生成完整tagsctags-R--c-kindspx--fieldsiaS--extraq ctags-R--c-kindspx--fieldsiaS--extraq# 生成系统函数tagsctags--fieldsiaS--extraq-R-f~/.vim/systags /usr/include /usr/local/include5.3 使用方法# 在.vimrc中添加settagstags;setautochdirsettags~/.vim/systags快捷键Ctrl ] 跳转到定义 Ctrl o 返回跳转前位置 Ctrl t 返回 :ta name 跳转到标签 :tags 查看跳转历史 gd 定位局部变量六、安装vimPlus打造IDE6.1 环境准备检查VIM版本vim--version需要VIM 8.0及以上版本且支持Python3vim--version|greppython# 看到 python3 表示支持6.2 从源码编译VIM如需要# 安装依赖yuminstallncurses-devel# 下载源码wgethttps://github.com/vim/vim/archive/master.zipunzipmaster.zipcdvim-master# 配置sudo./configure --with-featureshuge --enable-python3interp\--with-python-config-dir/usr/lib64/python3.6/config-3.6m-x86_64-linux-gnu# 编译安装sudomakesudomakeinstall# 配置PATHexportPATH/usr/local/bin:$PATH6.3 安装vimPlus# 克隆仓库gitclone https://github.com/chxuan/vimplus.git ~/vimplus-master# 安装cd~/vimplus-master ./install.sh# 安装过程中选择 Python3 编译 YCM6.4 vimPlus常用快捷键快捷键功能, n打开资源管理器, T查看函数列表, u转到定义gcc注释当前行gc可视模式下注释选中部分gcu撤销上次注释对齐代码先在可视模式选中Ctrln/p切换标签页Ctrlww切换分屏6.5 查看帮助进入VIM后在普通模式下按, h打开帮助文档。参考资源VIM打造IDE教程vimPlus项目ctags使用指南VIM快捷键参考