nvim file.txt Esc w/b/gg/G i/a/o :wq:terminal Ctrl-\ Ctrl-n Ctrl-\ Ctrl-o :checkhealth :lua:help {topic} :help index K# 最小工作流
nvim app.js
Esc
/TODO
ciwDONE
Esc
:wqnvim file.txt:打开文件nvim +12 file.txt:打开后跳到第 12 行nvim +/keyword file.txt:打开后直接搜索关键字Esc:回到普通模式i a I A:在光标前、后、行首、行尾进入插入模式o O:在下方、上方新开一行并进入插入模式:w :wq :q :q!:保存、保存退出、退出、强制退出# 先开文件,再改,再存
nvim src/main.ts
/name
ciwuserName
Esc
:w/old ciwnew Esc:改一个词C:改到行尾yy:复制当前行p P:粘贴当前行V > <:选中后整体缩进/pattern n .:搜索后继续修改:vsp other.ts Ctrl-w l Ctrl-w h:多文件对照:terminal:进入终端Ctrl-\ Ctrl-n:从终端回普通模式Ctrl-\ Ctrl-o:在终端里临时执行一次普通模式命令# 批量改同一类词
/old_name
ciwnew_name
Esc
n
.# 左右对照两个文件
:vsp config.example.yml
Ctrl-w l
/timeout
Ctrl-w h
/timeout/pattern ?pattern:向下、向上搜索n N:下一个、上一个匹配* #:搜索当前词的下一个、上一个匹配:%s/old/new/g:全文件替换:%s/old/new/gc:全文件逐个确认替换:g/pattern/cmd:对匹配行执行命令:v/pattern/cmd:对不匹配行执行命令qa ... q a:录制寄存器 的宏@a a:执行寄存器 的宏@@:重复上一次宏.:重复上一次修改# 先确认,再替换
/TODO
n
:%s/TODO/DONE/gci:多半还在普通模式,按它进插入模式:set clipboard?:先查剪贴板状态,再看终端 OSC52 和系统剪贴板能力nvim --clean:先试最小配置nvim -u NONE:先排除用户配置:checkhealth:看诊断入口:messages:看最近提示Ctrl-g:看当前文件和光标位置:help {topic} :help index:查帮助Esc:回到普通模式i a:在光标前、后进入插入模式I A:在行首、行尾进入插入模式o O:在下方、上方新开一行并进入插入模式s S:删除字符、删除整行后进入插入模式R:进入覆盖模式v V Ctrl-v:字符、行、块可视模式gv:重新选中上一次可视选择Ctrl-\ Ctrl-n:从终端模式回到普通模式Ctrl-\ Ctrl-o:在终端模式下执行一次普通模式命令h j k l:左、下、上、右w W:到下一个单词、WORD 开头b B:到上一个单词、WORD 开头e E:到单词、WORD 结尾ge gE:到上一个单词、WORD 结尾0 ^ $ g_:行首、非空行首、行尾、非空行尾gg G:文件头、文件尾H M L:屏幕顶部、中部、底部f{char} F{char}:向前、向后跳到字符t{char} T{char}:向前、向后跳到字符前一位; , fFtT:重复上一次%:跳到括号配对( ):跳到前一个、后一个句子{ }:跳到前一个、后一个段落Ctrl-d Ctrl-u:向下、向上翻半屏Ctrl-f Ctrl-b:向下、向上翻整屏Ctrl-e Ctrl-y:向下、向上滚一行zz zt zb:当前行居中、置顶、置底x X:删除光标处、前一个字符dd:删除整行D:删除到行尾dw db:删除到下一个、上一个单词边界diw daw:删除当前单词、当前单词含空格cw cW:修改当前单词、WORDciw caw:修改当前单词、当前单词含空格cc:修改整行C:修改到行尾r{char}:替换单个字符R:覆盖模式J gJ:连接行,保留或不保留空格u:撤销Ctrl-r:重做.:重复上一次修改~:切换字符大小写gu gU:转小写、转大写g~:反转大小写>> <<:当前行右移、左移==:自动缩进当前行=ap:自动缩进当前段落y yy:复制选中内容、复制当前行Y:复制当前行到行尾p P:在后方、前方粘贴gp gP:粘贴后把光标放到粘贴内容后、前"{reg}:选择寄存器"+y "+p:复制到、粘贴自系统剪贴板"*y "*p:复制到、粘贴自主剪贴板"_d:丢弃到黑洞寄存器:reg:查看寄存器v V Ctrl-v:字符、行、块选择o:在可视选择的另一端跳转O:在块选择中切换另一角d y c:删除、复制、修改选中内容> <:右移、左移选中内容=:自动缩进选中内容r{char}:用单个字符替换选区~:切换选区大小写gv:重新选中上一次可视选择/pattern ?pattern:向下、向上搜索n N:下一个、上一个匹配* #:搜索当前词的下一个、上一个匹配g* g#:搜索当前词的部分匹配:noh:取消搜索高亮:s/old/new/:替换当前行:%s/old/new/g:替换整个文件:%s/old/new/gc:替换整个文件并逐个确认:g/pattern/d:删除匹配行:v/pattern/d:删除不匹配行&:重复上一次替换g&:对整文件重复上一次替换qa ... q a:录制寄存器 的宏@a a:执行寄存器 的宏@@:重复上一次宏m{a-zA-Z}:设置标记`{mark}`:精确跳到标记位置'a `{mark}`:跳到标记所在行,精确位置用'':返回上一个跳转位置Ctrl-o:回到上一个跳转位置Ctrl-i:前进到下一个跳转位置g; g,:跳到上一个、下一个修改位置:marks:查看标记:jumps:查看跳转历史:changes:查看修改历史gf:打开光标下的文件名gF:打开光标下的文件名并跳到行号Ctrl-]:跳转到标签定义Ctrl-t:返回标签栈上一层K:打开光标下单词的帮助iw aw:当前单词、当前单词含空格iW aW:当前 WORD、当前 WORD 含空格is as:当前句子、当前句子含空格ip ap:当前段落、当前段落含空格i" a":双引号内、包含双引号i' a':单引号内、包含单引号i( a(:圆括号内、包含圆括号i[ a[:方括号内、包含方括号i{ a{:花括号内、包含花括号i< a<:尖括号内、包含尖括号ciw diw yiw:修改、删除、复制当前单词cit cat:修改、删除 HTML/XML 标签内内容:sp :vsp:水平、垂直分屏Ctrl-w s Ctrl-w v:水平、垂直分屏Ctrl-w w:切到下一个窗口Ctrl-w h j k l:切到左、下、上、右窗口Ctrl-w t Ctrl-w b:切到最上、最下窗口Ctrl-w c:关闭当前窗口Ctrl-w o:只保留当前窗口Ctrl-w x:交换当前窗口与下一个窗口Ctrl-w =:平衡所有窗口大小Ctrl-w + Ctrl-w -:增加、减少窗口高度Ctrl-w > Ctrl-w <:增加、减少窗口宽度Ctrl-w H J K L:把当前窗口移到最左、最下、最上、最右Ctrl-w r:与下一个窗口交换位置Ctrl-w T:把当前窗口移到新标签页:tabnew :tabedit:新建标签页、在标签页中打开文件gt gT:下一个、上一个标签页:tabnext :tabprev:切到下一个、上一个标签页:tabclose:关闭当前标签页:tabonly:只保留当前标签页:ls :buffers:查看缓冲区:b {nr|name}:切换缓冲区:bn :bp:下一个、上一个缓冲区:bd:关闭当前缓冲区qa ... q a:录制寄存器 的宏q:结束录制@a a:执行寄存器 的宏@@:重复上一次宏:normal {cmd}:对选中范围执行普通模式命令:global /pattern/ {cmd}:对匹配行批量执行命令::进入 Ex 命令行q: q/:打开命令、搜索历史窗口Ctrl-b Ctrl-e:命令行首尾Ctrl-u Ctrl-w:清除到开头、删掉前一个词Ctrl-r {reg}:在命令行插入寄存器内容Tab Ctrl-d:补全、列出补全:terminal:打开内置终端:checkhealth:运行健康检查:messages:查看最近消息:scriptnames:查看已加载脚本:source %:重新加载当前脚本:luafile %:重新执行当前 Lua 文件nvim --clean:用最小配置启动nvim -u NONE:不加载用户配置启动