Vim 作为终端神器,高效的核心在于「配置优化」和「指令熟练」

我把我常用的指令、.vimrc 配置、主题设置整理了一下,一步步带你打造舒适的 Vim 编辑环境,新手也能直接复制使用。


Vim 核心指令速查表

指令太多记不住?先把下面这些常用的练熟,日常编辑基本够用了。

模式切换

指令 功能
i 光标前插入
I 行首插入
a 光标后插入
A 行尾插入
v 可视模式(选字符)
V 可视行模式(选整行)
Ctrl+v 可视块模式
Esc / Ctrl+[ 返回正常模式
R 替换模式(覆盖输入)

光标移动

指令 功能
h / j / k / l 左 / 下 / 上 / 右
gg 文件首行
G 文件末行
nG / :n 跳到第 n 行
0 行首(绝对)
^ 行首第一个非空字符
$ 行尾
w 下一词首
b 上一词首
e 下一词尾
Ctrl+f 下翻一页
Ctrl+b 上翻一页
Ctrl+d 下翻半页
Ctrl+u 上翻半页
H / M / L 屏幕顶部 / 中间 / 底部

编辑操作

指令 功能
x 删除光标所在字符
X 删除光标前一个字符
dd 删除整行
ndd 删除 n 行
D 删除到行尾
dw 删除到下一词尾
yy / Y 复制整行
nyy 复制 n 行
yw 复制到下一词尾
p 粘贴到光标后
P 粘贴到光标前
u 撤销
Ctrl+r 重做
>> 右缩进
<< 左缩进
== 自动缩进

搜索与替换

指令 功能
/pattern 向下搜索
?pattern 向上搜索
n 下一个匹配
N 上一个匹配
* 向下搜索光标所在单词
# 向上搜索光标所在单词
:s/old/new 替换当前行第一个
:s/old/new/g 替换当前行所有
:%s/old/new/g 替换全文所有
:%s/old/new/gc 替换全文(逐个确认)
:nohl 清除高亮

~/.vimrc 配置文件

Vim 的个性化配置都在 ~/.vimrc 里,改完永久生效。

让配置生效:

改完后要么重启 Vim,要么在 Vim 里执行:

1
:source ~/.vimrc

语法要点

  • 注释用 " 开头
  • 配置项用 set,比如 set number
  • 大小写不敏感,但推荐用小写

vimrc 配置

这是我自己用的配置,直接复制到 ~/.vimrc 就能用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
color desert

" ==============================================================================
" Vim 基础配置:默认显示行号 + 字符编码 + 语法高亮 + 常用优化
" ==============================================================================

" 开启语法高亮
syntax enable
syntax on

" 显示绝对行号(默认打开)
set number

" 统一字符编码,解决中文乱码
set encoding=utf-8
let &termencoding=&encoding
set termencoding=utf-8
set fileencodings=utf-8,gbk,gb2312,gb18030,latin-1

" 自动缩进 & 智能缩进(写代码必备)
set autoindent
set smartindent

" Tab 设置为 4 个空格,规范代码格式
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4

" 搜索设置:高亮结果、实时匹配、忽略大小写智能识别
set hlsearch
set incsearch
set ignorecase
set smartcase

" 高亮当前行,方便定位光标
set cursorline

" 括号自动匹配高亮
set showmatch

" 永远显示状态栏,右下角显示光标位置
set laststatus=2
set ruler

" 底部显示正在输入的命令
set showcmd

" 开启鼠标支持(终端/VimGUI 都可用)
set mouse=a

" 不生成冗余备份文件(.swp / .bak)
set nobackup
set nowritebackup
set noundofile

" 代码自动换行,不拆单词
set wrap
set linebreak

" 光标上下保留 5 行空白,不贴边
set scrolloff=5

" 命令历史记录条数
set history=1000

" 命令行补全菜单
set wildmenu
set wildmode=longest,list

" 文件被外部修改时自动刷新
set autoread

" 代码折叠默认不折叠
set foldmethod=syntax
set foldlevel=99

想改什么直接改对应行就行,都有注释。


主题设置

内置主题

Vim 自带 17 种主题,直接用:

主题名 风格
desert 暖色沙漠风(我用的这个)
slate 冷色调,适合夜间
default 默认
darkblue 深蓝,高对比度
evening 柔和,护眼
elflord 绿黄配色
koehler 高对比度,适合编程
peachpuff 浅色,适合白天
torte 深色系
zellner 简约

第三方主题

想要更多选择可以看看这些:

主题 地址
Solarized https://github.com/altercation/vim-colors-solarized
Gruvbox https://github.com/morhetz/gruvbox
Molokai https://github.com/tomasr/molokai
Everforest https://github.com/sainnhe/everforest
Tokyonight https://github.com/folke/tokyonight.nvim
Ayu https://github.com/ayu-theme/ayu-vim
Monokai https://github.com/sickill/vim-monokai

安装方法各自仓库里都有,就不展开了。

更换主题

临时换:

1
:colorscheme slate

永久换就改 .vimrc 里那行 color desert,把 desert 换成你想要的主题名。

看有哪些可用的主题:输入 :colorscheme 然后按 Tab 键。


最后

这套配置用下来,日常编辑和写代码都够用了。后面想玩更花的,可以研究下插件(NERDTree、YouCompleteMe 之类的),或者自己定义快捷键。