Vim编辑器全套教程嵌入式开发高效编码必备Linux下没有VS Code、没有Sublime服务器上更没有图形界面。当你SSH到开发板调试唯一的编辑器可能就是Vim。学会它到哪里都能写代码。一、Vim是什么VimVi Improved是从经典的Vi编辑器发展而来的文本编辑器。它的特点是纯键盘操作、模式化编辑、无处不在几乎所有Linux系统都预装。新手第一次打开Vim通常会经历进去出不来→按键乱跳→强制关闭终端。别慌跟着本文一步步来。二、安装与启动# Ubuntu预装了vi但建议安装完整版vimsudoaptinstallvim# 启动vimvim# 打开空白界面vimmain.c# 打开或创建main.c文件vim10 main.c# 打开文件并跳转到第10行vim/main main.c# 打开文件并跳转到第一个匹配main的位置三、Vim三种核心模式Vim最大的特点就是模式化这也是新手最大的门槛。理解了模式Vim就入门了一半。三种模式的关系┌─────────────────────────────────────────────────────┐ │ 正常模式 │ │ (Normal Mode - 打开Vim默认进入) │ │ │ │ ┌─── i/I/a/A/o/O ───→ ┌──────────────┐ │ │ │ │ 插入模式 │ │ │ │ │ (Insert Mode) │ │ │ │ ←─── Esc ────────── │ 在这里输入文字 │ │ │ │ └──────────────┘ │ │ │ │ │ ├─── : ──────────→ ┌──────────────┐ │ │ │ │ 命令行模式 │ │ │ │ │(Command Mode) │ │ │ │ ←─── Esc ─────── │ 保存、退出等 │ │ │ │ └──────────────┘ │ │ │ │ │ └─── v/V/Ctrlv → ┌──────────────┐ │ │ │ 可视模式 │ │ │ │(Visual Mode) │ │ │ ←── Esc ─────── │ 选中文本操作 │ │ │ └──────────────┘ │ └─────────────────────────────────────────────────────┘3.1 正常模式Normal Mode打开Vim默认进入的就是正常模式。在这个模式下键盘上的按键不是输入文字而是操作命令。比如按x不是输入字母x而是删除光标处的一个字符。3.2 插入模式Insert Mode在正常模式下按以下键进入插入模式开始输入文字按键功能i在光标前插入I在行首插入a在光标后插入A在行末插入o在下方新开一行插入O在上方新开一行插入区别记忆i insert插入a append追加o open新开一行。按Esc键回到正常模式。3.3 命令行模式Command Mode在正常模式下输入:进入命令行模式光标移到屏幕底部可以输入命令:w 保存 :q 退出 :wq 保存并退出 :q! 强制退出不保存 :w new_name.c 另存为 :x 保存并退出等同于:wq小白救命锦囊如果不知道自己在什么模式连按两下Esc回到正常模式再输入:q!强制退出从头再来。四、正常模式下的光标移动4.1 基本移动按键功能助记h左←j下↓j像向下的钩k上↑l右→你的右手就在这四个键上这就是Vim高效的原因——手指不需要离开主键盘区去够方向键。4.2 快速移动按键功能w跳到下一个单词开头b跳到上一个单词开头e跳到单词末尾0跳到行首^跳到行首第一个非空字符$跳到行末gg跳到文件第一行G跳到文件最后一行:10或10G跳到第10行Ctrld向下翻半页Ctrlu向上翻半页Ctrlf向下翻整页Ctrlb向上翻整页五、编辑操作命令5.1 删除操作按键功能x删除光标处字符dd删除剪切整行dw删除一个单词d$删除到行末d0删除到行首5dd删除5行dG删除到文件末尾核心概念d是删除操作符后面跟一个动作组成完整命令。dw单词 删除单词d$行末 删到行末。这个操作符动作的模式是Vim的精髓。5.2 复制与粘贴按键功能yy复制整行yankyw复制一个单词y$复制到行末p在光标后粘贴P在光标前粘贴5yy复制5行注意dd删除的内容实际是剪切到了Vim的寄存器中按p可以粘贴出来。5.3 替换与撤销按键功能r替换光标处一个字符R进入替换模式连续替换u撤销undoCtrlr恢复撤销redo.重复上一次操作超实用~反转光标处字符大小写5.4 查找与替换 正常模式下查找 /hello 向下查找hello ?hello 向上查找hello n 跳到下一个匹配 N 跳到上一个匹配 * 查找光标所在的单词 命令行模式下替换 :s/old/new/ 替换当前行第一个old为new :s/old/new/g 替换当前行所有old为new :%s/old/new/g 全文替换old为new :%s/old/new/gc 全文替换每次确认cconfirm :10,20s/old/new/g 替换第10-20行的old为new六、可视模式可视模式用于选中文本块然后对选中区域执行操作。按键模式功能v字符可视模式按字符选择V行可视模式按整行选择Ctrlv块可视模式按矩形块选择列编辑选中后可以执行的常用操作d 删除选中内容 y 复制选中内容 选中内容右缩进 选中内容左缩进 ~ 反转大小写块可视模式的经典应用——批量注释1. Ctrlv 进入块可视模式 2. 用 j/k 选中要注释的行 3. 按 I大写i 4. 输入 // 5. 按 Esc所有选中行都会被注释七、多窗口与多文件7.1 分屏操作:split 或 :sp 水平分屏 :vsplit 或 :vs 垂直分屏 :sp main.c 水平分屏打开main.c Ctrlw w 在窗口间切换 Ctrlw h/j/k/l 切换到左/下/上/右窗口 :close 或 :q 关闭当前窗口 :only 关闭其他所有窗口7.2 多标签页:tabnew config.h 新标签页打开文件 :tabnext 或 gt 下一个标签页 :tabprev 或 gT 上一个标签页 :tabclose 关闭当前标签页八、Vim配置优化默认的Vim配置比较朴素做好以下配置后体验提升巨大。创建或编辑~/.vimrc文件 基础配置 set number 显示行号 set relativenumber 显示相对行号方便用数字命令跳转 set tabstop4 Tab键显示为4个空格宽 set shiftwidth4 自动缩进为4个空格 set expandtab Tab键转为空格 set autoindent 自动缩进 set smartindent 智能缩进 set cursorline 高亮当前行 set showmatch 高亮匹配的括号 set incsearch 实时高亮搜索 set hlsearch 高亮搜索结果 set ignorecase 搜索忽略大小写 set smartcase 智能大小写有大写时不忽略 set wildmenu 命令行补全增强菜单 set encodingutf-8 编码设为UTF-8 set fileencodingsutf-8,gbk 文件编码自动检测 set wrap 自动换行 set scrolloff5 光标距边缘5行时滚动 set backspaceindent,eol,start Backspace键正常工作 set noswapfile 不生成swap文件 快捷键映射 将leader键改为空格 let mapleader 快速保存 nnoremap leaderw :wCR 快速退出 nnoremap leaderq :qCR 取消搜索高亮 nnoremap leaderspace :nohlsearchCR 状态栏 set laststatus2 始终显示状态栏 set statusline%F%m%r%h%w\ [%Y]\ [%l/%L,\ %c]\ %{fileencoding}配置后重启Vim即可生效写代码体验直线上升。九、实用技巧合集9.1 快速跳转配对括号在正常模式下按%光标会在匹配的括号对之间跳转()→()、{}→{}、[]→[]。9.2 自动格式化代码 选中代码后按 自动缩进 ggG 全文自动缩进9.3 录制宏批量操作qa 开始录制宏存入寄存器a 执行一系列操作 q 停止录制 a 执行寄存器a中的宏 10a 执行10次9.4 常用组合操作速查操作按键序列说明删除一行dd剪切整行复制一行yy复制整行粘贴p粘贴到下方撤销uundo重做Ctrlrredo删除到行尾D或d$快速删除改写一个词cw删除单词并进入插入模式交换上下行ddp删除行后粘贴到下方在行尾追加A等同于$a新建下一行o下方开新行并进入插入模式十、总结Vim的学习曲线确实陡峭前三天你会怀疑人生但坚持一周后效率就会质变。关键是理解模式化编辑和操作符动作两大核心理念。把~/.vimrc配好日常编辑完全不需要鼠标。在嵌入式开发中SSH到远程设备写代码、改配置文件Vim是唯一可靠的选择。