Vim编辑器实战教程:从零开始高效编写代码

为什么选择Vim

在装机完成后,很多人会纠结用什么文本编辑器。有些人一上来就装VS Code、Sublime Text,但如果你经常需要在服务器上修改配置文件,或者想提升键盘操作效率,Vim几乎是绕不开的工具。它不依赖鼠标,启动速度快,几乎所有Linux系统都自带,关键时刻能救急。

比如你半夜收到报警,SSH连上服务器发现Nginx配置写错了,这时候图形界面打不开,只能靠命令行。会Vim的人几分钟改完重启服务,不会的只能干瞪眼。

安装与启动

大多数Linux发行版已经预装了Vim。如果没有,可以用包管理器快速安装:

sudo apt install vim    # Ubuntu/Debian
sudo yum install vim    # CentOS/RHEL
sudo pacman -S vim      # Arch Linux

装好后,在终端输入 vim filename 就能打开文件。比如要编辑hosts文件:

sudo vim /etc/hosts

Vim的三种基本模式

Vim最让人困惑的是它的“模式”概念。记住三个核心状态就行:

  • 普通模式(Normal Mode):用来移动光标、删除、复制、粘贴
  • 插入模式(Insert Mode):真正输入文字的地方
  • 命令模式(Command Mode):保存、退出、搜索替换等操作

刚打开Vim时就在普通模式。按 i 进入插入模式,可以像普通编辑器一样打字。写完内容后,按 Esc 回到普通模式。

常用快捷键实战

别指望一次记住所有按键,先掌握这几个高频操作:

光标移动:

h ← 左移
j ↓ 下移
k ↑ 上移
l → 右移

文本操作:

dd     删除当前行
yy     复制当前行
p      粘贴到下一行
u      撤销
Ctrl + r 重做

保存退出:

:w     保存
:q     退出
:wq    保存并退出
:q!    强制退出不保存

实际场景:修改SSH配置

假设你想禁用密码登录,只允许密钥登录。需要编辑SSH配置文件:

sudo vim /etc/ssh/sshd_config

进入后,按 / 开始搜索,输入 PasswordAuthentication,回车跳转到对应行。看到默认是 yes,想改成 no

先把光标移到 yes 前,按 l 移动到字符上,再按 ciw(change inner word),Vim会自动进入插入模式,这时输入 no,然后按 Esc 返回普通模式。

最后输入 :wq 保存退出,再重启SSH服务即可生效。整个过程全程不用鼠标,手不离键盘,效率高很多。

定制你的Vim环境

默认Vim没有行号、语法高亮,看着难受。可以在用户主目录创建配置文件来优化体验:

vim ~/.vimrc

写入以下内容:

" 启用语法高亮
syntax on

" 显示行号
set number

" 启用自动缩进
set autoindent
set smartindent

" 显示括号匹配
set showmatch

" 高亮搜索结果
set hlsearch

" 忽略大小写搜索
set ignorecase

保存后,下次打开Vim就会舒服多了。这些设置就像给裸车加装倒车雷达和座椅加热,立马提升使用感受。

进阶技巧:批量替换

你在写Python脚本,把所有变量名 user_name 改成 username,一个个改太累。Vim提供强大的替换功能:

:%s/user_name/username/g

这条命令的意思是:在整个文件中(%),查找 user_name 并替换成 usernameg 表示每行全部替换。如果只想确认每个替换,加上 c 参数:

:%s/user_name/username/gc

每找到一个都会停下来问你是否替换,按 y 确认,n 跳过,安全又灵活。

小技巧集合

一些实用但容易被忽略的功能:

  • gg 跳到文件开头,G 跳到最后一行
  • Ctrl + f 向下翻页,Ctrl + b 向上翻页
  • * 快速选中光标下的词并搜索全文
  • v 进入可视模式,配合方向键选择文本块
  • :set list 显示空格和换行符,排查格式问题很管用

遇到卡住的情况别慌,连续按几次 Esc 回到普通模式,再试其他命令。Vim的设计哲学就是“一切皆可按键解决”,只是需要时间适应。