vim配置分享/快速上手指南

2026年4月4日 · 543 字 · 3 分钟

本文将 Vim 视为一种高度可组合的“编程语言”,深度解析了“动词+名词”的核心交互逻辑与多模态操作架构。内容涵盖从基础位移到宏录制、修饰符等进阶技巧,并集成了 CapsLock 改键映射及 .vimrc 生产力配置实战。通过打通从终端到浏览器的全域 Vim 生态,旨在帮助开发者彻底摆脱鼠标依赖,重塑极致的文本编辑效率。

Vim Note

学习目标

  • 避免离开键盘热键,避免使用鼠标,提高开发效率

学习资源

配置

  • 键位映射
  • 插件配置

特色

  • 多模态编辑器:
    • <ESC>正常模式:在文件中四处移动光标进行修改
    • i 插入模式:插入文本
    • r 替换模式:替换文本
    • v 可视化模式(一般,V 行,<C-v>块):选中文本块
    • : 命令模式:用于执行命令
  • Vim的接口是一种编程语言: Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。

基本操作

一、缓存,标签页,窗口

  • Vim 会维护一系列打开的文件,称为 “缓存”。一个 Vim 会话包含一系列 标签页,每个标签页包含 一系列 窗口(分隔面板)。每个窗口显示一个缓存
  • 跟网页浏览器等其他你熟悉的程序不一样的是, 缓存和窗口不是一一对应的关系; 窗口只是缓冲区的视图。一个缓存可以在 多个 窗口打开,甚至在同一 个标签页内的多个窗口打开。这个功能其实很好用,比如可以 查看同一个文件的不同部分。
  • 分屏: :sp (水平) | :vsp (垂直)。窗口只是缓存的视图,可同时查看同文件的不同部分。

二、命令行

  • :q 退出(关闭窗口)
  • :w 保存(写)
  • :wq 保存然后退出
  • :e {文件名} 打开要编辑的文件
  • :ls 显示打开的缓存
  • :help {标题} 打开帮助文档
    • :help :w 打开 :w 命令的帮助文档
    • :help w 打开 w 移动的帮助文档

三、指令组成

1. 名词 - Noun

尽量放弃方向键,使用 hjkl 保持手指在主键区。

  • 基础: h(左) j(下) k(上) l(右)
  • 单词: w (下个词首) | b (词初) | e (词尾)
  • 行内: 0 (绝对行初) | ^ (第一个非空字符) | $ (行尾)
  • 垂直: gg (文件头) | G (文件尾) | {行数}G (跳至指定行)
  • 查找: f{字符} (行内向前找字符) | t{字符} (找字符前一个位置)
  • 搜索: /{正则表达式} (向下搜索) | ? (向上搜索) | n/N (跳至下/上一个匹配)

2. 动词 - Verb

  • i 进入插入模式 | o / O 在下方/上方新开一行并进入插入模式
  • d{移动} 删除(如 dw 删词, d$ 删至行尾)
  • c{移动} 改变(删除并进入插入模式,如 cw 改写单词)
  • y 复制 (Yank) | p 粘贴 (Paste)
  • u 撤销 | <C-r> 重做
  • x 删除单个字符 | s 替换单个字符
  • 在 Visual (可视) 模式下:选中一段文字后按 U,选中的内容会全部变大写。

三、 Vim 编程语言

Vim 的强大源于这个公式:[数字] + [修饰符] + [动词] + [名词]

1. 计数 (Count)

  • 3w 向后移动 3 个单词。
  • 5j 向下移动 5 行。
  • 10dd 删除 10 行。

2. 修饰符 (Modifiers)

用于定义操作范围:i (inner - 内部) 或 a (around - 周围)。

  • ci( 改变当前括号 () 内部的内容。
  • di" 删除双引号内的字符串。
  • da{ 删除整个花括号块(含花括号本身)。

3. 宏 (Macro)

  • 宏录制:
    1. q{a} 开始录制到寄存器 a
    2. 执行一系列复杂操作。
    3. q 停止录制。
    4. @{a} 重放操作(配合数字如 100@a 批量处理)。

四、 个人配置与扩展

1. 配置文件 .vimrc

Vim 的灵魂在于自定义。

可以说,一个好的配置决定了vim是古老编辑器还是现代实用工具()

建议手动维护,不要盲目复制他人配置。

  • 必改映射: 建议将 <CapsLock> (大小写锁定) 映射为 <ESC>,极大缓解手指压力。

(后文附修改方法)

  • 核心插件推荐:
    • ctrlp.vim:模糊搜索文件。
    • NERDTree:树形文件浏览器。
    • vim-easymotion:远距离光标“瞬移”。

2. 生态延伸

  • Shell: set -o vi 让命令行支持 Vim 快捷键。
  • 浏览器: 安装 Vimium (Chrome) 或 Tridactyl (Firefox) 实现纯键盘冲浪。

(但是我还是贴出我的配置hhh大家按需选用)

首先就是我改了windows系统设置,把大写锁定映射成了esc

方法如下

下载并安装 Microsoft PowerToys 如果你还没有安装,可以通过以下几种方式获取:

  • 官方下载: 前往 GitHub PowerToys 发布页面 下载最新的 .exe 安装包。
  • 应用商店: 在 Windows 11 的 Microsoft Store 中搜索 “PowerToys” 并安装。
  • 命令行安装: 打开终端(PowerShell),输入:
    winget install Microsoft.PowerToys
    

安装完成后,按以下步骤操作:

  1. 打开 PowerToys 设置: 在任务栏右下角找到 PowerToys 图标并双击,或从开始菜单搜索打开。
  2. 进入键盘管理器: 在左侧菜单栏中找到 键盘管理器 (Keyboard Manager),确保顶部的开关处于“开启”状态。
  3. 重新映射键: 点击中间部分的 重新映射键 (Remap a key)
  4. 添加映射关系:
    • 点击左侧的加号 +
    • 在左侧的 选择 (Select) 下拉框中找到 Caps Lock(或者直接点击“按下”,然后在键盘上按一下大写锁定键)。
    • 在右侧的 发送 (To send) 下拉框中选择 Esc(同理可以点击“按下”后按一下 Esc 键)。
  5. 保存设置: 点击右上角的“确定”。

" --- 基础设置 ---
set nocompatible      " 关闭 Vi 兼容模式,解锁 Vim 更多功能
syntax on             " 开启语法高亮
set shortmess+=I      " 启动时不显示欢迎界面(捐赠提示等)
set number            " 显示行号
set relativenumber    " 显示相对行号(方便 5j, 10k 这种跳转)
set laststatus=2      " 总是显示状态栏
set ruler                                 " 打开状态栏标尺
set backspace=indent,eol,start  " 允许在自动缩进、行尾、插入点前使用退格键
set hidden            " 允许在未保存当前文件的情况下切换缓冲区(Buffer)
set mouse+=a          " 开启鼠标支持

set smartindent                           " 智能自动缩进
set autoindent                            " 新行自动继承上一行的缩进
set shiftwidth=4                          " 设置自动缩进时,每一级缩进4个空格的宽度
set tabstop=4                             " 设定 tab 长度为 4 
set hlsearch                              " 搜索时高亮匹配项
" 输入 :noh 可以临时关闭高亮
set autochdir                             " 自动切换当前目录为当前文件所在的目录

set showcmd         " 在右下角显示当前输入的命令(比如输入 d 时会显示)
set wildmenu        " 命令行模式下的补全增强(以列表形式展示选项)

set nobackup           " 不生成备份文件 (~ 文件)
set noswapfile         " 不生成交换文件 (.swp 文件)

" --- 搜索优化 ---
set ignorecase        " 搜索时忽略大小写
set smartcase         " 如果搜索词包含大写,则自动转为大小写敏感
set incsearch         " 边输入边显示匹配结果

" --- 快捷键与行为调整 ---
" 禁用 Q 键,防止误入容易卡住的 Ex 模式
nmap Q <Nop>
let mapleader=" "      " 设置空格为 Leader 键

" 按空格 + w 保存,按空格 + q 退出
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>

" 按空格 + nh 取消搜索高亮
nnoremap <leader>nh :nohlsearch<CR>

" 禁用声音提示(报错时不会发出叮叮声)
set noerrorbells visualbell t_vb=

将vimrc文件保存到~/.vimrc文件中(~指的是c:/

在命令行唤起vim,输入:echo $MYVIMRC可以检查识别出的配置文件的路径

五、 练习建议

  1. 初级: 运行终端指令 vimtutor(或 :Tutor),完成 30 分钟互动教学。
  2. 中级: 强制在所有编辑任务(笔记、代码、README)中使用 Vim,忍受最初 20 小时的低效期。
  3. 高级: 当你觉得某个操作太慢时,去搜“Vim better way for…”,永远有新命令等着你。