linux常用命令vim
发布时间:2025-11-01 00:13       
这是一份面向一线工程的 Vim 高效指令速查 + 实战策略。目标:更快打开、精准定位、稳定改动、干净提交。🧰
1)模式与退出(先活着出来)
:q—— 退出(无改动):w—— 保存当前缓冲区:wq/:x—— 保存并退出:q!—— 丢弃改动强退ZZ—— 若有改动则保存并退出,无改动直接退
说明:Vim 有“普通(Normal)/插入(Insert)/可视(Visual)”等模式;Esc回普通模式,再执行冒号命令更稳。
2)精准移动(快、准、少回车)
- 基础:
h j k l(左下上右) - 单词:
w下个词首、b上个词首、e词尾 - 行内:
0行首、^首个非空、$行尾 - 全文:
gg顶部、G底部、:{行号}跳行 - 语法块:
%匹配括号跳转、{/}段落间跳 - 查找:
/关键字向下、?关键字向上、n/N下/上一个 - 翻页:
Ctrl+d/u半屏、Ctrl+f/b全屏
说明:任意移动前加数字放大步长,如10j向下十行。
3)编辑与撤销(少打字,多复用)
- 进入插入:
i光标前、a光标后、I行首、A行尾、o/O下/上一行新起 - 变更:
r替换单字符、R进入覆盖模式 - 删除(剪切):
x删字符、dw删至词尾、dd删整行 - 复制粘贴:
yy复制行、y{motion}按移动复制、p/P后/前粘贴 - 撤销/反撤销:
u撤销、Ctrl+r重做 - 重复上次操作:
.
说明:y/d/c + {motion}是 Vim 的“动词 + 宾语”模型,配合移动指令一次到位。
4)可视与格式化(结构化动刀)
- 可视选择:
v字符、V行、Ctrl+v列块 - 缩进:
>右缩、<左缩、==自动对齐当前行、=i{格式化花括号内 - 文本折行格式化:选区后
gq
说明:列块编辑适合对齐日志字段、批量插入注释等。
5)查找与替换(批量改,留确认)
- 行内替换:
:s/旧/新/ - 全文替换:
:%s/旧/新/g - 交互确认:
:%s/旧/新/gc(c=confirm) - 正则:支持
\v超魔法模式,:%s/\vfoo(\d+)/bar\1/g
说明:全局替换先加c逐条确认,避免误伤生产配置。
6)多文件/多窗口(并行处理,降低上下文切换)
- 打开文件:
:e 文件,缓冲列表::ls - 缓冲切换:
:bn/:bp(next/prev) - 分屏:
:sp水平、:vs垂直;窗口切换Ctrl+w h/j/k/l - 标签页:
:tabedit 文件、gt/gT切换
说明:把“比对 + 修改 + 验证”放入左右分屏,降低认知折返。
7)状态诊断与只读写入(现场常用)
- 关闭高亮:
:noh(查找结束后不刺眼) - 显示不可见字符:
:set list(排查多余空格/Tab) - 只读文件以 sudo 写回:
:w !sudo tee % - 解决 swap 提示:确认无并发编辑后
:recover或删除.swp
说明:tee写回原路径,%代表当前文件名。
8)常用配置(最小可用 .vimrc)
set nocompatible " 关闭兼容模式
syntax on " 语法高亮
set number relativenumber " 绝对+相对行号,便于跳转
set expandtab " 用空格代替Tab
set shiftwidth=2 tabstop=2 softtabstop=2 " 统一缩进宽度
set ignorecase smartcase " 搜索忽略大小写,含大写时区分
set incsearch hlsearch " 增量搜索与高亮
set clipboard=unnamedplus " 共享系统剪贴板
set mouse=a " 开启鼠标(必要时临时关闭::set mouse=)
filetype plugin indent on " 按文件类型加