Vim 生存指南（写给同好）

用 Vim 三年了，从一开始的"勉强能打字"到现在"离开就不爽"。本文把目前用得顺手的配置整理出来。先说结论 Vim 难吗？难。但它的"难"是学习曲线的难，不是工具本身的难。熬过前两周，之后就是赚的。起步：装对东西现在我个人推 neovim。配置文件在 ~/.config/nvim/init.vim。基础配置 " === 基础 === set nocompatible syntax on set encoding=utf-8 filetype plugin indent on " === 界面 === set number set relativenumber set cursorline set scrolloff=8 set colorcolumn=100 " === 搜索 === set hlsearch set incsearch set ignorecase set smartcase " === 缩进 === set autoindent set tabstop=4 set shiftwidth=4 set expandtab " === 剪贴板 === set mouse=a set clipboard=unnamedplus " === Leader 键 === let mapleader = "," 插件管理：lazy.nvim require("lazy").setup({ { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, { "nvim-lualine/lualine.nvim" }, { "nvim-tree/nvim-tree.lua" }, { "lewis6991/gitsigns.nvim" }, { "nvim-telescope/telescope.nvim" }, { "hrsh7th/nvim-cmp" }, }) 必学的几个动作 gg / G — 跳到文件首/尾 / + 关键字 — 搜索 n / N — 下一个/上一个匹配 dd / yy / p — 删/拷/贴一行 u / Ctrl-r — 撤销/重做 v + 方向键 — 选中（visual 模式） % — 跳到匹配的括号 Ctrl-w + h/j/k/l — 切换分屏省时间的插件 telescope.nvim — 模糊搜索，比 :e tab completion 快 10 倍 nvim-cmp — 自动补全 gitsigns.nvim — 行级 git 状态显示 nvim-tree — 文件树三个反直觉但救命的设置 set relativenumber：相对行号，跳行数不用心算 set scrolloff=8：滚动时光标永远在屏幕中段 set mouse=a：在 terminal 里用 vim 也能用鼠标学习资源 :Tutor — vim 自带教程 Vim Adventures — RPG 学键位 Practical Vim — Drew Neil 的书 Vim 是个工具，不是信仰。别神化也别妖魔化。够用就行，不够就加，加完还觉得不够就换别的工具。