绿豆沙の小窝

Back

Vim 入门

为什么要学 Vim#

在服务器上改配置、没有图形界面的环境下,你只能用一个终端编辑器。Vim 是几乎所有 Linux 发行版预装的,学会了在任何机器上都能干活。

它的设计哲学:大多数时间你是在看/改代码,不是在敲新代码。所以默认是”normal 模式”,键盘变成了一堆快捷操作。

三种核心模式#

        按 i / a / o          按 Esc
编辑 ←──────────── 正常 ────────────→ 命令
      ────────────▶      ←────────────
      按 Esc                 按 : / /
plaintext
模式作用进入方式
正常模式浏览、删除、复制、移动按 Esc
插入模式正常打字输入i(光标前) a(光标后) o(下一行)
命令模式保存、退出、搜索、替换: 或 /

核心原则:手指不离开键盘,持续停留在主键区。

移动:丢掉方向键#

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

w       跳到下一个单词开头
b       跳到上一个单词开头
e       跳到单词末尾
0       跳到行首
^       跳到行首第一个非空字符
$       跳到行尾
gg      跳到文件开头
G       跳到文件末尾
:42     跳到第 42 行
plaintext

为什么不用方向键?因为方向键离主键区太远,每次抬手浪费时间。

编辑操作#

搜索与替换#

" 搜索:按 / 输入关键词,回车
/search_word     " n 下一个匹配,N 上一个匹配

" 替换全文
:%s/old/new/g    " 替换全文所有匹配

" 替换并逐个确认
:%s/old/new/gc   " y 替换,n 跳过
vim

多文件与分屏#

:split file2.py       " 水平分屏打开另一个文件
:vsplit file2.py      " 垂直分屏
Ctrl+w hjkl            " 在分屏间移动光标
Ctrl+w =               " 分屏大小均分
:bd                    " 关闭当前 buffer
vim

实用配置#

在 ~/.vimrc 中加入:

syntax on              " 语法高亮
set number             " 显示行号
set relativenumber     " 显示相对行号(方便跳转)
set expandtab          " 将 Tab 转换为空格
set tabstop=4          " Tab 显示宽度
set shiftwidth=4       " 缩进宽度
set autoindent         " 自动缩进
set hlsearch           " 高亮搜索结果
set incsearch          " 增量搜索
set ignorecase         " 忽略大小写
set smartcase          " 有大写时区分大小写
set mouse=a            " 支持鼠标
vim

最少必要命令#

一天学会 Vim 不太现实,但记住这 10 个操作就能干活了:

操作命令
开始编辑i
退出编辑Esc
保存:w
退出:q
不保存强制退出:q!
保存并退出:wq 或 ZZ
删除一行dd
复制一行yy
粘贴p
撤销u

学习路线#

  1. 先用 vimtutor 命令(Vim 自带教程)过一遍基础操作
  2. 安装一个终端内的练习工具(如 VimBeater)
  3. 日常改配置、写笔记时强制用 Vim,坚持两周
  4. 逐步加插件(NERDtree、fzf、coc.nvim)

别一上来就堆插件,先把移动和编辑的基本功练熟。

Vim 入门
https://lvdousha26.github.io/blog/vim-tutorial
Author lvdousha
Published at May 18, 2026