菜鸟科技网

Vim命令合集,新手如何快速掌握?

Vim作为一款功能强大的文本编辑器,其命令体系丰富且高效,掌握这些命令能极大提升编辑效率,以下从基础操作、光标移动、文本编辑、搜索替换、窗口管理等多方面详细整理Vim命令合集,帮助用户系统学习。

Vim命令合集,新手如何快速掌握?-图1
(图片来源网络,侵删)

基础操作与模式切换

Vim的核心在于模式,不同模式下执行的命令完全不同,首先需熟悉三种基本模式:

  • 普通模式(Normal Mode):默认模式,用于导航和执行命令,通过Esc键进入。
  • 插入模式(Insert Mode):用于文本输入,可通过i(光标前插入)、a(光标后插入)、o(当前行下方新建行插入)等命令进入。
  • 可视模式(Visual Mode):用于选择文本,分为字符可视模式(v)、行可视模式(V)、块可视模式(Ctrl+v),选中后可进行复制、删除等操作。

其他常用模式

  • 命令行模式(Command-Line Mode):通过进入,用于保存文件(w)、退出(q)、搜索(/string)等。
  • 替换模式(Replace Mode):通过R进入,可直接替换光标处字符。

光标移动(普通模式)

光标快速移动是高效编辑的基础,以下为常用移动命令:

  • 基本移动
    • h:左移一个字符,l:右移一个字符,j:下移一行,k:上移一行。
    • w:移动到下一个单词开头,e:移动到当前单词末尾,b:移动到上一个单词开头。
    • 0(数字零):移动到行首,:移动到行尾,^:移动到行首非空白字符。
  • 行间与文件范围移动
    • gg:跳转到文件第一行,G:跳转到文件最后一行,nG(如5G):跳转到第n行。
    • Ctrl+f:向下翻页,Ctrl+b:向上翻页,Ctrl+d:向下半页翻页,Ctrl+u:向上半页翻页。
  • 相对位置移动
    • n|:移动到行第n列(如5|:移动到第5列)。
    • 匹配括号(如、[]、)跳转,:跳转到当前单词下一次出现位置,:跳转到当前单词上一次出现位置。

文本编辑(普通/插入/可视模式)

删除与剪切

  • 普通模式删除
    • x:删除光标处字符,nx(如3x):删除光标后3个字符。
    • dd:删除当前行,ndd(如5dd):删除当前行及后续4行共5行。
    • d^:删除到行首非空白字符,d$:删除到行尾,dw:删除一个单词。
  • 剪切与粘贴
    • 剪切本质是删除+复制,dd剪切一行,d+移动命令(如dwdG)剪切指定范围。
    • p:在光标后粘贴,P:在光标前粘贴,np(如2p):粘贴n次。

复制与粘贴

  • 复制命令
    • y(yank)用于复制,yy:复制当前行,nyy:复制n行。
    • yw:复制一个单词,y$:复制到行尾,y^:复制到行首非空白字符。
    • 可视模式下选中后,y复制选中内容。

撤销与重做

  • u:撤销上一步操作,Ctrl+r:重做(撤销的反向操作)。
  • U:撤销对当前行的所有修改(光标在行内时有效)。

修改与替换

  • 插入模式进入
    • i:光标前插入,a:光标后插入,I:行首插入,A:行尾插入。
    • o:当前行下方新开一行插入,O:当前行上方新开一行插入。
  • 普通模式修改
    • r:替换光标处单个字符(如rx将光标处字符改为x),R:进入替换模式,连续替换直到Esc
    • c(change)修改后自动进入插入模式,如cc:修改当前行(删除后进入插入模式),cw:修改一个单词。

搜索与替换(命令行模式)

  • 搜索文本
    • /string:从光标处向下搜索string?string:向上搜索。
    • n:跳转到下一个搜索结果,N:跳转到上一个搜索结果。
    • 搜索时忽略大小写:set icicignorecase缩写),恢复大小写敏感:set noic
  • 替换文本
    • s/old/new:替换当前行中第一个oldnew
    • s/old/new/g:替换当前行中所有oldnewgglobal缩写)。
    • %s/old/new/g:替换整个文件中所有oldnew,需确认可加c %s/old/new/gc,替换前提示)。

窗口与标签管理

  • 窗口分割
    • split(或sp):水平分割窗口,vsplit(或vs):垂直分割窗口。
    • Ctrl+w+w:在窗口间切换,Ctrl+w+h/j/k/l:切换到左/下/上/右窗口。
    • close:关闭当前窗口,only:关闭其他窗口,保留当前窗口。
  • 标签页管理
    • tabnew(或tn):新建标签页,tabn(或tabnext):切换到下一个标签页,tabp(或tabprevious):切换到上一个标签页。
    • gt:下一个标签页,gT:上一个标签页,tabm n:将当前标签页移动到第n位(如tabm 0移到最前)。

高级操作技巧

  • 文本对象操作
    • 文本对象针对“块”进行操作,格式为[动作][文本对象],如d":删除双引号内的内容,ci(:修改括号内的内容(删除并进入插入模式)。
    • 常用文本对象:w(单词)、s(句子)、p(段落)、(双引号)、(单引号)、(括号)、(花括号)、[(方括号)。
  • 宏录制与执行
    • q+寄存器名(如qa)开始录制宏,q结束录制,+寄存器名(如@a)执行宏,重复执行上一次宏。
  • 自动补全与缩进
    • Ctrl+x Ctrl+f:补全文件名,Ctrl+x Ctrl+l:补全整行,Ctrl+n:基于当前文件内容补全。
    • >>:当前行右缩进,<<:当前行左缩进,>>+视觉块选择可批量缩进。

实用命令速查表

功能分类 命令 说明
模式切换 Esc 返回普通模式
i/a/o 进入插入模式(光标前/后/新行)
v/V/Ctrl+v 进入字符/行/块可视模式
光标移动 hjkl 左/下/上/右移动
w/e/b 单词开头/末尾/上一个开头
gg/G/nG 文件首/尾/第n行
删除 x/dd/dw 删除字符/行/单词
复制 yy/yw/y$ 复制行/单词/到行尾
粘贴 p/P 光标后/前粘贴
撤销/重做 u/Ctrl+r 撤销/重做
搜索 /string/?string 向下/向上搜索
替换 %s/old/new/g 全局替换
窗口分割 sp/vs 水平/垂直分割窗口
标签页 tabnew/gt/gT 新建标签页/切换标签页

相关问答FAQs

Q1:如何在Vim中同时编辑多个文件?
A:Vim可通过缓冲区(Buffer)和标签页(Tabpage)管理多个文件。

Vim命令合集,新手如何快速掌握?-图2
(图片来源网络,侵删)
  • 缓冲区操作bnext(切换到下一个缓冲区)、bprev(上一个缓冲区)、b filename(打开或切换到指定文件缓冲区)、ls(列出所有缓冲区)。
  • 标签页操作tabnew filename(新建标签页并打开文件)、tabn/tabp(切换标签页)、tabm n(调整标签页顺序)。
    窗口分割(split/vsplit)可在同一界面同时显示多个文件,通过Ctrl+w+w切换窗口。

Q2:如何高效删除Vim中的空行或特定模式的行?
A:可通过命令行模式结合正则表达式批量删除:

  • 删除所有空行g/^$/dg全局执行,/^$匹配空行,d删除)。
  • 删除包含特定模式的行(如删除含“TODO”的行):g/TODO/d
  • 删除不包含特定模式的行(如保留含“NOTE”的行):v/NOTE/dvg!缩写,取反匹配)。
    若需确认删除,可在命令后加c(如g/^$/dc),删除前会提示确认。
Vim命令合集,新手如何快速掌握?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇