13
10
月
2026
在服务器上改配置,你几乎总会遇到 vim。它功能强大但学习曲线陡峭——很多人第一次用是"打开后不知道怎么输入,最后关不掉"。
这篇讲 vim 的核心用法:够你在服务器上高效改文件,不用再害怕。
需要一台服务器练手?财富云计算 提供云服务器;内网服务、测试环境可选 NAT 型(无独立公网 IP,价格比带独立 IP 机型省一半以上)。
一、为什么必须会一点 vim
- 服务器上默认就有(nano 不一定装了)
- 远程编辑配置文件的标准工具
- 不需要图形界面,SSH 下完美工作
- 熟练后编辑效率极高
最低要求:会打开、会输入、会保存、会退出。这篇保证你达到这个水平以上。
二、vim 的模式(核心概念)
这是 vim 和其他编辑器最大的区别——它有模式:
| 模式 | 作用 | 怎么进入 |
|---|---|---|
| 普通模式(Normal) | 移动光标、执行命令 | 启动默认;其他模式按 Esc |
| 插入模式(Insert) | 输入文字 | 按 i a o 等 |
| 可视模式(Visual) | 选中文本 | 按 v V Ctrl+v |
| 命令模式(Command) | 保存、退出、搜索替换 | 按 : |
新手最大的困惑:打开后敲键盘没反应/乱跳 —— 因为你在普通模式,按键被当成命令了。
记住:想输入文字先按 i,改完按 Esc 回到普通模式再保存。
三、打开与退出(先学会跑路)
vim file.txt # 打开文件
vim file.txt +100 # 打开并跳到第 100 行
vim +/关键词 file.txt # 打开并跳到第一个匹配
vim file1 file2 # 打开多个文件退出(最重要)
| 命令 | 含义 |
|---|---|
:q | 退出(没修改时) |
:q! | 强制退出,不保存(改错了用这个) |
:w | 保存 |
:w file2 | 另存为 |
:wq 或 :x 或 ZZ | 保存并退出 |
:wq! | 强制保存退出(只读文件时) |
卡住了怎么办:按 Esc 几次,然后输入 :q! 回车。一定能出来。
四、插入文本
| 命令 | 作用 |
|---|---|
i | 在光标前插入 |
a | 在光标后插入 |
I | 在行首插入 |
A | 在行尾插入 |
o | 在下方新开一行 |
O | 在上方新开一行 |
s | 删除当前字符并插入 |
S / cc | 删除整行并插入 |
进入插入模式后左下角会显示 -- INSERT --。
五、移动光标(普通模式)
基本移动
k ↑
h ← → l
j ↓或者直接用方向键(新手友好)。
高效移动
| 命令 | 移动 |
|---|---|
w / b | 下一个 / 上一个单词 |
0 / ^ | 行首 / 行首第一个非空格 |
$ | 行尾 |
gg | 文件开头 |
G | 文件结尾 |
100G 或 :100 | 跳到第 100 行 |
Ctrl+f / Ctrl+b | 下一页 / 上一页 |
Ctrl+d / Ctrl+u | 下半页 / 上半页 |
% | 跳到匹配的括号 |
{ / } | 上一段 / 下一段 |
六、编辑操作
删除
| 命令 | 作用 |
|---|---|
x | 删除当前字符 |
dd | 删除当前行 |
5dd | 删除 5 行 |
dw | 删除一个单词 |
d$ / D | 删到行尾 |
d0 | 删到行首 |
dG | 删到文件尾 |
dgg | 删到文件头 |
复制粘贴
| 命令 | 作用 |
|---|---|
yy | 复制当前行 |
5yy | 复制 5 行 |
yw | 复制一个单词 |
p | 在光标后粘贴 |
P | 在光标前粘贴 |
其他
| 命令 | 作用 |
|---|---|
u | 撤销 |
Ctrl+r | 重做 |
. | 重复上一次操作(非常好用) |
>> / << | 右移 / 左移(缩进) |
J | 合并下一行到当前行 |
~ | 切换大小写 |
组合用法:d + 移动命令 = 删除到某处。比如 d$ 删到行尾,dw 删一个词。
七、搜索与替换
搜索
/关键词 向下搜索
?关键词 向上搜索
n 下一个匹配
N 上一个匹配
* 搜索光标下的单词(向下)
# 搜索光标下的单词(向上)
:set hlsearch 高亮所有匹配
:set nohlsearch 关闭高亮
:nohlsearch 临时关闭高亮替换
:s/old/new/ 替换当前行第一个
:s/old/new/g 替换当前行所有
:%s/old/new/g 替换全文所有
:%s/old/new/gc 替换全文,每次确认
:10,20s/old/new/g 替换第 10-20 行
:%s/old/new/gi 忽略大小写最常用::%s/旧/新/g —— 全文替换。
搜索时忽略大小写
:set ignorecase " 忽略大小写
:set smartcase " 有大写字母时区分大小写八、可视模式(选中文本)
v 字符选择(按字符移动)
V 行选择(按行)
Ctrl+v 块选择(矩形区域)选中后可以:
d 删除
y 复制
> 缩进
< 反缩进
: 进入命令(会对选中范围操作)块选择的妙用(批量注释):
Ctrl+v进入块选择- 移动光标选中多行行首
Shift+i进入插入- 输入
# Esc两次 —— 所有选中行都加上了#
九、多文件与分屏
:e file2 打开另一个文件
:bn / :bp 下一个 / 上一个文件
:ls 列出所有打开的文件
:split file 或 :sp 水平分屏
:vsplit file 或 :vs 垂直分屏
Ctrl+w w 切换窗口
Ctrl+w h/j/k/l 切换到左/下/上/右
Ctrl+w q 关闭当前窗口
:qall 关闭所有
:wqall 保存并关闭所有十、实用配置(~/.vimrc)
新建 ~/.vimrc 让它更好用:
" 显示行号
set number
" 语法高亮
syntax on
" 自动缩进
set autoindent
set smartindent
" Tab 设置(重要,改配置文件时)
set tabstop=4
set shiftwidth=4
set expandtab " Tab 转空格
" 搜索
set hlsearch " 高亮搜索结果
set incsearch " 边输边搜
set ignorecase
set smartcase
" 显示
set cursorline " 高亮当前行
set showcmd " 显示命令
set ruler " 显示行列位置
set laststatus=2 " 显示状态栏
" 编辑
set backspace=indent,eol,start " 退格键可用
set encoding=utf-8
set fileencodings=utf-8,gbk,gb2312
" 鼠标支持
set mouse=a
" 显示不可见字符
set list
set listchars=tab:>-,trail:~vim ~/.vimrc
# 粘贴上面的内容,:wq 保存注意:set expandtab 会把 Tab 变成空格。编辑 Python/YAML 时很有用(这些语言对缩进敏感),但如果你想保留 Tab 就去掉它。
十一、编辑系统配置文件的注意事项
1)权限
sudo vim /etc/nginx/nginx.conf # 用 sudo 打开
# 或打开后强制保存
:w !sudo tee % > /dev/null2)改前先备份
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf3)改完验证语法
nginx -t
sshd -t
php -l file.php4)只读文件强制保存
:wq!十二、常见场景速查
场景:改 Nginx 配置
sudo vim /etc/nginx/sites-available/mysite
# i 进入插入模式
# 改完 Esc
# :wq 保存退出
sudo nginx -t && sudo systemctl reload nginx场景:清空一个文件
gg " 到开头
dG " 删到结尾
:wq或者命令模式下::%d 然后 :wq
场景:全文替换域名
:%s/old-domain.com/new-domain.com/g
:wq场景:批量注释多行
Ctrl+v " 块选择
j j j " 选中几行
Shift+i " 插入
# " 输入注释符
Esc " 等一下,所有行都会加场景:复制几行到别处
V " 行选择
j j " 选 3 行
y " 复制
移动光标到目标位置
p " 粘贴十三、vim vs nano
| 对比 | vim | nano |
|---|---|---|
| 学习成本 | 高 | 极低 |
| 功能 | 极强 | 基础 |
| 默认安装 | 几乎所有系统 | 部分系统没有 |
| 快捷键提示 | 无 | 底部有提示 |
| 适合 | 长期使用、重度编辑 | 临时改个文件 |
建议:
- 临时改一行 → nano(
nano file) - 要长期在服务器上工作 → 花半小时学 vim,值得
- 大段编辑 → 本地编辑器写好再上传(WinSCP、VS Code Remote)
设置默认编辑器:
export EDITOR=vim
echo 'export EDITOR=vim' >> ~/.bashrc十四、如果实在受不了 vim
替代品:
# nano(最简单)
apt install nano -y
nano file
# 本地编辑后上传(推荐做法)
# WinSCP / FileZilla / VS Code Remote SSH
# 本地用熟悉的编辑器,保存自动同步到服务器VS Code Remote SSH 是现代最舒服的方案:本地 VS Code 直接编辑服务器文件,有语法高亮、自动补全、Git 集成,完全不用 vim。
十五、速查卡
打开: vim file
插入: i (前) / a (后) / o (下新行) / O (上新行)
回普通: Esc
保存: :w
退出: :q
保存退出: :wq 或 ZZ
强制退出: :q!
删除行: dd (5dd 删 5 行)
复制行: yy (5yy 复制 5 行)
粘贴: p (后) / P (前)
撤销: u 重做: Ctrl+r
行首: 0 行尾: $
文件头: gg 文件尾: G
第 N 行: :N
搜索: /关键词 下一个 n 上一个 N
替换: :%s/old/new/g 全文替换(加 c 逐个确认)
显示行号: :set number会 vim 是服务器运维的基本功。财富云计算 的云服务器提供完整的 SSH 访问,可自由安装 vim/nano 等工具;内网服务、测试环境可选 NAT 型(无独立公网 IP,价格比带独立 IP 机型省一半以上)。
相关阅读:
- 《Linux 常用命令速查表》
- 《SSH 密钥登录与账号安全配置》
- 《Linux 文件权限与用户组详解》
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复