Vim 编辑器入门:服务端必备利器

zheng头像
zheng 2026-07-15 17:02
楼主

刚接手一台服务器,想改个配置文件,vi 一打开,光标在闪,你敲键盘它没反应,按了半天 Esc 还是退不出来,最后只能 Ctrl+Z 强行挂起……别慌,每个程序员都经历过这一步。Vim 看着反人类,其实只要记住几个键,它就是你在服务器上最趁手的刀。


为什么服务端离不开 Vim

场景 图形编辑器 Vim
远程服务器改配置 没法用 SSH 进去直接改
编辑超大日志(几个 G) 直接卡死 秒开,按需加载
断网/低带宽环境 连不上 纯字符,丝滑
批量替换、列编辑 手动点到手酸 一行命令搞定

Vim 是几乎所有 Linux 发行版自带的东西,你不用装任何东西,登录服务器就能用。学会它,等于随身带了一把瑞士军刀。


一、三种模式(核心中的核心)

Vim 的"反人类"全怪它有三个模式,搞懂这个就入门了 80%。

模式 进入方式 作用 退出方式
普通模式(Normal) 打开默认 / 按 Esc 移动光标、删除、复制
插入模式(Insert) i / a / o 输入文字 Esc 回普通模式
命令模式(Command) 普通模式按 : 保存、退出、查找 回车执行

记住一句话:普通模式是家,干完活就按 Esc 回家。


二、进入插入模式的几种姿势

在普通模式下:

i    在光标前插入
a    在光标后插入
o    在当前行下方新建一行并插入
O    在当前行上方新建一行并插入
I    跳到行首插入
A    跳到行尾插入

新手最常用 io,记住这两个就能开始写东西了。


三、移动光标(别再用方向键了)

Vim 里方向键也能用,但高手都用 h j k l,手不用离开主键区:

h    左
j    下
k    上
l    右

w    跳到下一个单词开头
b    跳到上一个单词开头
0    跳到行首
$    跳到行尾
gg   跳到文件第一行
G    跳到文件最后一行
:行号  跳到指定行,如 :50
Ctrl+f  向下翻页
Ctrl+b  向上翻页


四、删除、复制、粘贴

普通模式下(不用进插入模式就能改):

x        删除光标所在字符
dw       删除一个单词
dd       删除整行
3dd      删除 3 行
D        删除从光标到行尾
yy       复制整行
3yy      复制 3 行
p        粘贴到光标下方
P        粘贴到光标上方
u        撤销
Ctrl+r   重做(反撤销)

小技巧:Vim 的删除其实是"剪切",dd 删掉的行用 p 能粘回来,相当于移动一行。


五、保存与退出(最容易卡住的地方)

在普通模式按 : 进入命令模式:

:w        保存
:w 文件名  另存为
:q        退出(没改才能退)
:q!       强制退出,不保存
:wq       保存并退出
:x        同 :wq
ZZ        普通模式下直接按,保存并退出(不用冒号)

记不住就记 :wq:q! 这两个,一个保存退出,一个不保存强退,够用了。


六、查找与替换

/关键词      向下查找,按 n 跳下一个,N 跳上一个
?关键词      向上查找
:%s/旧/新/g   全文替换所有匹配
:s/旧/新/g    当前行替换所有匹配
:%s/旧/新/gc  全文替换,每个都问你要不要(c = confirm)

替换示例:把全文的 localhost 改成 127.0.0.1

:%s/localhost/127.0.0.1/g


七、可视化模式(块选择)

v     字符级选择,配合 hjkl 选一片
V     行级选择,整行整行选
Ctrl+v  列块选择,能竖着选一整列(批量加注释超好用)

列块加注释实战:比如要给 5 行代码前面加 # 注释:

  1. Ctrl+v 进入列块模式
  2. j 选中这 5 行的第一列
  3. I(大写 i)进入列插入
  4. 输入 #,按 Esc
  5. 稍等一瞬,5 行前面同时出现 #


八、分屏(同时看多个文件)

:sp 文件名    上下分屏打开文件
:vsp 文件名   左右分屏打开文件
Ctrl+w w     在分屏间切换
Ctrl+w q     关闭当前分屏

改 Nginx 配置时,左边看原配置、右边写新配置,效率直接翻倍。


九、实用配置:让 Vim 更好用

默认 Vim 很裸,在 ~/.vimrc 里加点配置体验立刻不同:

" 显示行号
set number

" 语法高亮
syntax on

" 自动缩进
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab

" 搜索时忽略大小写,有大写才区分
set ignorecase
set smartcase

" 实时高亮搜索结果
set hlsearch
set incsearch

" 鼠标支持(终端里也能用鼠标点)
set mouse=a

" 编码
set encoding=utf-8


十、新手速查表

我想干啥 按什么
开始写 i
不写了 Esc
存盘退出 :wq
不存强退 :q!
删一行 dd
粘回来 p
撤销 u
找东西 /关键词 然后 n
跳文件头/尾 gg / G


Vim 不用背,天天 ssh 上服务器改两回配置,这些键自然就长在肌肉里了。刚开始慢一点没关系,等你第一次在服务器上用 :%s 一行命令改完 200 处配置,你就再也回不去鼠标点点点了。

自建网站监控:Uptime Kuma 部署教程 Termux 入门指南:把 Android 手机变成随身 Linux 终端

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:2831