为什么坚持使用 Vim

写脚本、改配置或连上服务器时,我更愿意使用 Vim。原因很简单:全部操作都围绕键盘展开,速度一旦练起来,效率远超图形化编辑器。这份笔记记录了我日常最常用的命令,帮助保持手感。

模式思维

Vim 的精髓在于不同模式:

  • 普通模式(Normal):浏览、操作文本的默认模式。
  • 插入模式(Insert):输入内容,按 iao 等进入。
  • 可视模式(Visual):选择文本,按 v(字符)、V(整行)或 Ctrl+v(块)。
  • 命令行模式(Command-line):按 : 触发,执行保存、替换等命令。

牢记 “Esc 回到普通模式,再决定下一步” 的节奏,就不会迷路。

启动与保存

vim file.txt   # 打开或新建文件
vim .          # 浏览当前目录

常见命令:

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

光标移动

把方向键忘掉,用 hjkl 建立肌肉记忆:

   k
 h   l
   j

扩展移动:

w / b / e     单词粒度跳转
0 / ^ / $     行首、文本首、行尾
<number>gg    跳到指定行
G / gg        文件末尾 / 头部
{ / }         按段落跳转
Ctrl+f / Ctrl+b  翻页
Ctrl+e / Ctrl+y  向上/下滚动单行

编辑与撤销

i  在光标前插入
a  在光标后插入
o  另起一行
x  删除当前位置
r  替换当前字符
R  连续替换直到 Esc
dd 删除整行(同时拷贝)
dw 删除一个单词
u  撤销
Ctrl+r  重做

复制粘贴与可视模式

yy   复制整行
p    粘贴
vaw  选中一个单词
vab  选中括号内文本
vaB  选中大括号内文本
v< / v>  批量缩进或回退缩进
v~ / vU / vu  大小写转换

可视模式配合 = 可以快速对齐代码块。

查找与替换

/<keyword>   向下搜索,按 n / N 跳转
:substitute   替换命令的前缀

常用替换语句:

:%s/foo/bar/g      全文替换
ggVG :s/foo/bar/g  选定范围替换
:%s/foo/bar/gc     每次替换前确认
:10,20s/foo/bar/g  指定行替换
:set number        临时显示行号

入门配置

在主目录创建 .vimrc,写入最基础的偏好:

syntax on
set number
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set showmatch
set encoding=utf-8

保存后执行 :source ~/.vimrc 即刻生效。随着需求增加,再逐步加入插件管理、搜索增强等配置即可。

练习方式

  • 每天花 10 分钟做 vimtutor,强化手感。
  • 在终端里强迫自己使用 hjkl,养成肌肉记忆。
  • 做笔记时优先用 Vim,遇到问题再查手册,效率会稳步提升。

小结

Vim 并不神秘,只要理解模式切换和核心命令,就能在服务器或本地都保持同一种操作节奏。花时间建立手感,后续的维护与开发都会顺手许多。