菜鸟科技网

vim 常用命令有哪些?

vim 作为一款功能强大的文本编辑器,其命令体系丰富且高效,掌握常用命令能极大提升编辑效率,以下从不同模式出发,详细梳理 vim 的常用命令,并辅以表格归纳,帮助系统学习。

vim 常用命令有哪些?-图1
(图片来源网络,侵删)

模式基础

vim 的核心在于模式切换,不同模式下操作逻辑截然不同:

  • 普通模式:启动 vim 后默认进入此模式,用于导航、删除、复制等操作,是命令执行的入口。
  • 插入模式:用于文本输入,可通过普通模式下的命令进入。
  • 末行模式:执行保存、退出、搜索等扩展命令,通过 普通模式命令进入。
  • 可视模式:用于选中文本,支持字符、行、块级选择,便于批量编辑。

普通模式常用命令

光标移动

光标快速移动是高效编辑的基础,命令如下:

  • 基本移动h(左)、l(右)、j(下)、k(上),也可使用方向键。
  • 单词移动w(到下一个单词首)、e(到当前单词尾)、b(到上一个单词首)。
  • 行内移动0(到行首)、(到行尾)、^(到行首非空字符)。
  • 屏幕移动H(到屏幕首行)、M(到屏幕中间行)、L(到屏幕末行)、Ctrl+f(向下翻页)、Ctrl+b(向上翻页)。
  • 文件移动gg(到文件首)、G(到文件尾)、数字G(跳转到指定行,如 10G 跳转第 10 行)。

文本删除

删除命令需谨慎使用,支持多种范围:

  • 单字符删除x(删除光标后字符)、X(删除光标前字符)。
  • 行删除dd(删除当前行)、2dd(删除当前行及下 2 行)。
  • 范围删除d$(删除到行尾)、d^(删除到行首非空字符)、dw(删除一个单词)。
  • 删除并进入插入模式C(删除到行尾并插入)、s(删除光标字符并插入)、S(删除整行并插入)。

复制与粘贴

vim 的复制粘贴基于寄存器,支持跨文件操作:

vim 常用命令有哪些?-图2
(图片来源网络,侵删)
  • 复制单行yy(复制当前行)、2yy(复制当前行及下 2 行)。
  • 范围复制yw(复制一个单词)、y$(复制到行尾)、y0(复制到行首)。
  • 粘贴p(在光标后粘贴)、P(在光标前粘贴)。
  • 特殊复制"+y(复制到系统剪贴板,可与外部程序互通)、"+p(从系统剪贴板粘贴)。

撤销与重做

  • 撤销u(撤销上一步操作)、Ctrl+r(重做,即恢复撤销)。
  • 撤销到某一步g-(向后撤销)、g+(向前重做)。

替换与修改

  • 字符替换r(替换光标处字符,如 ra 将光标字符改为 a)、R(进入替换模式,连续替换直到按 Esc)。
  • 修改文本c(结合移动命令修改,如 cw 修改一个单词、c$ 修改到行尾)、cc(修改整行)。

其他常用操作

  • 重复操作:(重复上一次普通模式命令,如 dd 后按 可继续删除下一行)。
  • 交换字符xp(交换光标后字符与光标字符,如 ab 光标在 a 时执行 xp 变为 ba)。
  • 删除至指定字符td(删除到光标后第一个 d 字符)、T(反向删除)。

插入模式进入方式

普通模式下通过以下命令进入插入模式,实现高效输入:

  • i:在光标前插入。
  • a:在光标后插入。
  • I:在行首插入。
  • A:在行尾插入。
  • o:在当前行下方插入新行。
  • O:在当前行上方插入新行。
  • s:删除光标字符后插入。
  • S:删除整行后插入。

可视模式操作

先进入可视模式(v 字符选择、V 行选择、Ctrl+v 块选择),再执行命令:

  • 选中文本v + 移动命令(如 jk 选中字符、w 选中单词)。
  • 编辑选中内容d(删除)、y(复制)、c(修改)、>(右移)、<(左移)。
  • 块选择操作Ctrl+v 进入块选择,可批量编辑多行相同位置内容,如同时选中多行首字符按 d 删除。

末行模式命令

通过 进入,支持文件操作、搜索、替换等:

  • 保存与退出w(保存)、q(退出)、wq(保存并退出)、q!(不保存强制退出)、wq!(强制保存退出,只读文件时使用)。
  • 文件操作e 文件名(打开文件)、bn(切换到下一个缓冲区)、bp(切换到上一个缓冲区)、sp 文件名(分屏打开文件)。
  • 搜索:(向下搜索)、(向上搜索)、n(向下查找下一个)、N(向上查找下一个)。
  • 替换%s/旧文本/新文本/g(全文替换)、%s/旧文本/新文本/gc(全文替换并确认)、s/旧文本/新文本/g(替换当前行)。
  • 行号显示set nu(显示行号)、set nonu(隐藏行号)、set cursorline(显示光标行)。

常用命令速查表

功能分类 命令 说明
光标移动 h/j/k/l 左/下/上/右移动
w/b/e 下一个单词首/上一个单词首/当前单词尾
0/$/^ 行首/行尾/行首非空字符
gg/G 文件首/文件尾
文本删除 x/X 删除光标后/前字符
dd 删除当前行
dw/d$ 删除一个单词/到行尾
复制粘贴 yy/nyy 复制当前行/复制 n 行
p/P 光标后/前粘贴
"+y/"+p 复制到/从系统剪贴板
撤销重做 u/Ctrl+r 撤销/重做
替换修改 r/R 替换单字符/进入替换模式
cw/cc 修改一个单词/整行
插入模式 i/a/I/A 光标前/后/行首/行尾插入
o/O 下方/上方插入新行
可视模式 v/V/Ctrl+v 字符/行/块选择
d/y/c 删除/复制/修改选中内容
末行模式 w/:q/:wq 保存/退出/保存退出
%s/old/new/g 全文替换
/关键词?关键词 搜索/反向搜索

相关问答FAQs

问题1:vim 中如何快速删除包含特定关键词的所有行?
解答:可通过末行模式的搜索结合删除实现,步骤如下:

vim 常用命令有哪些?-图3
(图片来源网络,侵删)
  1. 输入 /关键词 搜索到第一个匹配行;
  2. 输行 g/关键词/dg 表示全局匹配,d 表示删除,即可删除所有包含关键词的行。
    若需确认删除,可使用 g/关键词/dc,删除前会提示确认。

问题2:vim 如何实现多窗口编辑?如何切换窗口?
解答:多窗口(分屏)操作可通过以下命令实现:

  • 分屏打开文件split 文件名(水平分屏)、vsplit 文件名(垂直分屏);
  • 在当前窗口分屏new(水平新窗口)、vnew(垂直新窗口);
  • 窗口切换Ctrl+w + 方向键(或 h/j/k/l,对应左/下/上/右窗口)、Ctrl+w+w(循环切换窗口);
  • 关闭窗口close(关闭当前窗口)、only(保留当前窗口,关闭其他)。
    分屏后,每个窗口独立操作,通过 Ctrl+w 系列命令管理窗口布局。
分享:
扫描分享到社交APP
上一篇
下一篇