SSH 到一台服务器上改配置手头没有 VS Code能用的编辑器基本就 Nano 和 Vim。Nano 上手快但改大型项目源码时效率差 Vim 一大截。这一篇把 Vim 的模式、常用快捷键、基础配置和插件入门讲清楚目标是看完就能独立改文件不再一进去就出不来。一、Vim 的核心五种模式很多人怕 Vim是因为打开文件后敲键盘全是乱跳根本输不了字。问题不在 Vim在没搞懂模式。Vim 里同一把按键在不同模式下做的事完全不同。模式进入方式干什么用普通模式Normal打开文件默认就在按 Esc 随时回来移动光标、复制删除、切换模式插入模式Insert普通模式下按i/a/o正常打字编辑可视模式Visual普通模式下按v/V/Ctrlv选中文本块命令行模式Command-line普通模式下按:///?保存、退出、替换、搜索替换模式Replace普通模式下按R覆盖式输入刚打开文件时你在普通模式。这是第一句话也是最重要的一句话。在普通模式下按键盘的字母不是输入字符是发命令。想打字先按i想回到普通模式按Esc。普通模式下进入插入模式按键作用i在光标前插入a在光标后插入o在下方新开一行插入O在上方新开一行插入I跳到行首插入A跳到行尾插入i够用一辈子。o在改代码时特别顺手不用手移到行尾再按回车。二、移动光标hjkl 和更快的跳转基础移动按键作用hjkl左、下、上、右代替方向键w下一个单词开头b上一个单词开头e当前单词结尾0跳到行首$跳到行尾^跳到行首第一个非空白字符gg跳到文件第一行G跳到文件最后一行数字 G跳到第数字行如12G跳到第 12 行Ctrld/Ctrlu向下/向上翻半屏Ctrlf/Ctrlb向下/向上翻一整屏hjkl 这四个键在主键盘区手不用挪到方向键熟练后效率高很多。不强迫自己用方向键也能干活。三、编辑操作删、复制、粘贴、撤销删除与修改按键作用x删除光标下一个字符dd删除整行dw删除到下一个单词开头d$或D删除到行尾d0删除到行首cc或S删除整行并进入插入模式cw删除当前单词并进入插入模式u撤销Ctrlr重做撤销的撤销Vim 的删除其实就是剪切——删掉的内容进了寄存器按p就能粘出来。这也是dd之后p能复制整行的原理。复制与粘贴按键作用yy复制整行yw复制一个单词y$复制到行尾p在光标后粘贴P在光标前粘贴数字 yy复制数字行如5yy复制 5 行数字前缀在 Vim 里到处都能用3dd删 3 行10j往下跳 10 行2w跳两个单词。四、搜索与替换搜索按键作用/关键词向下搜索?关键词向上搜索n跳到下一个匹配N跳到上一个匹配*搜索光标下的单词替换命令行模式下输入:%s/old/new/g把整个文件里的old替换成new。%表示全文s是 substituteg表示一行里所有匹配都换不加g只换每行第一个。想替换前确认一下加c:%s/old/new/gc每处替换都会问你一次y/n/a/q/l。五、保存与退出按键作用:w保存:q退出:wq保存并退出:q!强制退出不保存:x保存并退出和 :wq 等价ZZ保存并退出普通模式快捷键ZQ不保存直接退出新手最容易卡在这里改完文件发现按什么都退不出来。记住Esc先回到普通模式再:q!强行退出永远不会丢系统。六、可视模式选块操作按键作用v字符可视模式按字符选V行可视模式按整行选Ctrlv块可视模式选矩形块块可视模式Ctrlv是 Vim 处理多行编辑的利器。比如想给连续几行前面都加#注释Ctrlv进入块模式用j/k选中要注释的行按I进入行首插入输入#按Esc所有选中的行都会加上#。批量改代码缩进、加前缀用块模式比手敲快得多。七、.vimrc一份能用的基础配置Vim 默认配置很朴素。把下面这段存成~/.vimrc打开文件时 Vim 会自动加载 显示行号 set number 相对行号配合数字j/k 快速跳行 set relativenumber 缩进设置 set tabstop4 set shiftwidth4 set expandtab set autoindent set smartindent 搜索 set hlsearch set incsearch set ignorecase set smartcase 界面 set cursorline set scrolloff5 set wildmenu set showcmd 关闭备份和交换文件提示 set nobackup set noswapfile 语法高亮 syntax on 文件类型检测加载对应插件 filetype plugin indent on每一行的作用都写在注释里。几个关键点expandtab把 Tab 键转成空格避免不同编辑器打开缩进乱掉。incsearch边输入边高亮匹配项不用按回车就知道搜到哪了。smartcase搜索时全小写忽略大小写只要有一个大写就区分大小写日常最顺手。noswapfile关掉每次打开文件都生成.swp临时文件个人用够了团队协作环境建议留着。改完.vimrc后在 Vim 里跑:source ~/.vimrc立即生效不用重开。八、插件入门点到为止Vim 原生已经能干很多事但写大型项目时还想有自动补全、文件树、语法检查就要靠插件。现在主流的插件管理器是 vim-plugcurl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim装好后在.vimrc里加一段call plug#begin(~/.vim/plugged) Plug preservim/nerdtree 文件树 Plug vim-airline/vim-airline 底部状态栏 call plug#end()打开 Vim 跑:PlugInstall就会自动下载安装。NERDTree用:NERDTreeToggle呼出文件树vim-airline直接在底部显示当前模式、文件名、行列号。新手不建议一上来装一堆插件先把原生快捷键练熟。插件是加分项不是必需品。九、知识扩展为什么 Vim 要搞这么多模式普通编辑器里打字和移动光标用的是同一套按键Vim 偏要分开听着反人类。设计逻辑其实很简单编辑文本的人大部分时间不是在打字而是在移动光标、看代码、删改。Vim 把高频操作移动、删除、复制放在普通模式让手不用离开主键区把低频操作真正输入文字切到插入模式。用熟之后从一个函数跳到另一个函数、删掉几行、复制粘贴全程手指不挪键盘中间区域这就是 Vim 党说的指尖效率。代价是学习曲线陡。记住一句话就够跨过去Esc 永远是回普通模式普通模式是你的大本营。进了插入模式不害怕按 Esc 回来就行。多改几次配置文件肌肉记忆两周就建立了。