Vim 编辑器详解:模式切换、常用命令与 .vimrc 配置,新手入门到熟练


在 Linux 服务器上编辑文件,逃不开的编辑器就是 Vim。无论是改 Nginx 配置、写脚本还是编辑 crontab,打开的都是 Vim。但很多新手第一次打开 Vim 就卡住了:不知道怎么输入文字、不知道怎么退出,甚至有人把 Vim 戏称为"退出最难"的软件。这篇文章把 Vim 的核心用法一次讲清,让你从"不会退出"到"熟练编辑"。

一、Vim 是什么

Vim 是 Linux 上最经典的文本编辑器,是 vi 的增强版。它和 Windows 上的记事本完全不同:Vim 是模式化编辑器,同一个键盘在不同模式下代表不同功能,这就是新手困惑的根源。

Vim 有三种核心模式:

  • 普通模式(Normal):打开文件默认进入,此时按键是命令(如删除、复制、移动光标)
  • 插入模式(Insert):按 i 进入,此时才能输入文字
  • 命令行模式(Command):按 : 进入,用于保存、退出、搜索等操作

新手最需要记住的退出命令:

:q    # 退出(未修改时)
:q!   # 强制退出,不保存
:wq   # 保存并退出
:wq!  # 强制保存并退出

按 Esc 可以随时回到普通模式。

二、安装与打开文件

安装 Vim(多数系统自带 vi,建议装完整版 vim):

# Ubuntu / Debian
apt install -y vim

# CentOS / Rocky
yum install -y vim

打开文件:

vim /etc/nginx/nginx.conf   # 打开指定文件
vim +10 文件                 # 打开并跳转到第 10 行
vim 文件1 文件2               # 同时打开多个文件

三、移动光标(普通模式)

打开文件后,用 hjkl 移动光标(比方向键高效):

按键 作用
h j k l 左 / 下 / 上 / 右
w / b 跳到下一个 / 上一个单词开头
0 / $ 跳到行首 / 行尾
gg / G 跳到文件开头 / 结尾
:数字 跳到指定行,如 :50 跳到第 50 行
Ctrl+f / Ctrl+b 向下 / 向上翻页

四、进入插入模式(编辑)

在普通模式下按以下按键进入插入模式:

按键 作用
i 在光标前插入
a 在光标后插入
o 在下一行新建并插入
O 在上一行新建并插入
I 在行首插入
A 在行尾插入

编辑完成后按 Esc 回到普通模式。

五、删除、复制与粘贴

按键 作用
x 删除光标处字符
dd 删除整行
3dd 删除 3 行
dw 删除一个单词
d$ 删除到行尾
yy 复制整行
3yy 复制 3 行
p 粘贴到光标下方
P 粘贴到光标上方
u 撤销
Ctrl+r 重做

撤销/重做是最常用的两个命令,改错了按 u 就回来。

六、搜索与替换

搜索:

/关键词    # 向下搜索,按 n 跳下一个,N 跳上一个
?关键词    # 向上搜索

替换:

:%s/旧词/新词/g        # 全文替换
:%s/旧词/新词/gc       # 全文替换,逐个确认
:5,20s/旧词/新词/g     # 只替换 5 到 20 行

七、常用配置 .vimrc

在用户主目录创建 ~/.vimrc,写一些常用配置,编辑体验提升一个档次:

set number          " 显示行号
set relativenumber  " 相对行号
syntax on           " 语法高亮
set autoindent      " 自动缩进
set tabstop=4       " Tab 占 4 个空格
set shiftwidth=4    " 缩进宽度 4
set expandtab       " Tab 转空格
set hlsearch        " 搜索高亮
set incsearch       " 边输入边搜索
set showcmd         " 显示输入的命令
set nowrap          " 不自动换行
filetype on         " 按文件类型加载配置

改完 :wq 保存退出,重新打开 Vim 即生效。

八、多文件与分屏

:sp 文件名    # 水平分屏打开
:vsp 文件名   # 垂直分屏打开
Ctrl+w w      # 在分屏间切换
:q            # 关闭当前分屏

九、常见问题

Q1:Vim 卡住了,怎么退出?

先按 Esc 确保回到普通模式,再按 :q! 强制退出(不保存改动)。

Q2:按方向键出现 ABCD 乱码?

说明 Vim 没装完整版。用 apt install vim 安装完整版,或改用 hjkl 移动光标。

Q3:中文显示乱码?

在 ~/.vimrc 中加:

set encoding=utf-8
set fileencodings=utf-8,gbk

Q4:怎么把文件内容复制到系统剪贴板?

# 先复制选中内容,再用系统命令处理
:%y+   # 把全部内容复制到剪贴板

总结

Vim 的学习曲线陡峭,但核心就三件事:记住模式、记住移动、记住保存退出。把 i(插入)、Esc(返回)、:wq(保存退出)、dd(删行)、yy(复制)、p(粘贴)、u(撤销)这几个命令练熟,日常服务器编辑就完全够用了。剩下的命令用一次学一次,慢慢就熟练了。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

Hexo 博客搭建教程:静态博客三分钟上线,Markdown 写作 GitHub 部署零成本

Git 安装与使用教程:从入门到实战,常用命令一次讲清

评 论
更换验证码