☰
Vim编辑器从入门到精通:模式、快捷键、配置、插件
2026/10/12 3:54:18 网站建设 项目流程

SSH 到一台服务器上改配置,手头没有 VS Code,能用的编辑器基本就 Nano 和 Vim。Nano 上手快,但改大型项目源码时效率差 Vim 一大截。这一篇把 Vim 的模式、常用快捷键、基础配置和插件入门讲清楚,目标是看完就能独立改文件,不再一进去就出不来。

一、Vim 的核心:五种模式

很多人怕 Vim,是因为打开文件后敲键盘全是乱跳,根本输不了字。问题不在 Vim,在没搞懂模式。Vim 里同一把按键在不同模式下做的事完全不同。

模式进入方式干什么用
普通模式(Normal)打开文件默认就在,按 Esc 随时回来移动光标、复制删除、切换模式
插入模式(Insert)普通模式下按i/a/o正常打字编辑
可视模式(Visual)普通模式下按v/V/Ctrl+v选中文本块
命令行模式(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 行
Ctrl+d/Ctrl+u向下/向上翻半屏
Ctrl+f/Ctrl+b向下/向上翻一整屏

hjkl 这四个键在主键盘区,手不用挪到方向键,熟练后效率高很多。不强迫自己,用方向键也能干活。

三、编辑操作:删、复制、粘贴、撤销

删除与修改

按键作用
x删除光标下一个字符
dd删除整行
dw删除到下一个单词开头
d$或D删除到行尾
d0删除到行首
cc或S删除整行并进入插入模式
cw删除当前单词并进入插入模式
u撤销
Ctrl+r重做(撤销的撤销)

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是 substitute,g表示一行里所有匹配都换(不加g只换每行第一个)。

想替换前确认一下,加c:

:%s/old/new/gc

每处替换都会问你一次y/n/a/q/l。

五、保存与退出

按键作用
:w保存
:q退出
:wq保存并退出
:q!强制退出不保存
:x保存并退出(和 :wq 等价)
ZZ保存并退出(普通模式快捷键)
ZQ不保存直接退出

新手最容易卡在这里:改完文件发现按什么都退不出来。记住Esc先回到普通模式,再:q!强行退出,永远不会丢系统。

六、可视模式:选块操作

按键作用
v字符可视模式,按字符选
V行可视模式,按整行选
Ctrl+v块可视模式,选矩形块

块可视模式(Ctrl+v)是 Vim 处理多行编辑的利器。比如想给连续几行前面都加#注释:

  1. Ctrl+v进入块模式
  2. 用j/k选中要注释的行
  3. 按I进入行首插入
  4. 输入#
  5. 按Esc

所有选中的行都会加上#。批量改代码缩进、加前缀,用块模式比手敲快得多。

七、.vimrc:一份能用的基础配置

Vim 默认配置很朴素。把下面这段存成~/.vimrc,打开文件时 Vim 会自动加载:

" 显示行号 set number " 相对行号,配合数字+j/k 快速跳行 set relativenumber " 缩进设置 set tabstop=4 set shiftwidth=4 set expandtab set autoindent set smartindent " 搜索 set hlsearch set incsearch set ignorecase set smartcase " 界面 set cursorline set scrolloff=5 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-plug:

curl -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 回来就行。多改几次配置文件,肌肉记忆两周就建立了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询