菜鸟科技网

vim核心使用命令有哪些?

vim作为一款功能强大的文本编辑器,其高效的操作依赖于命令的组合使用,以下将详细介绍vim的常用命令,涵盖模式切换、文本编辑、文件操作、搜索替换、窗口管理及高级技巧,帮助用户系统掌握vim的使用方法。

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

模式基础与切换

vim的核心在于不同工作模式的切换,主要分为以下四种模式:

  1. 普通模式(Normal Mode):启动vim后的默认模式,用于导航、删除、复制等操作,所有命令均以键位为单位,如h左移、j下移、k上移、l右移。
  2. 插入模式(Insert Mode):用于文本输入,可通过以下命令进入:
    • i:在光标前插入
    • a:在光标后插入
    • o:在当前行下方新建行并插入
    • I:在行首插入
    • A:在行尾插入
    • O:在当前行上方新建行并插入
    • Esc键可返回普通模式。
  3. 可视模式(Visual Mode):用于选择文本,分为三种:
    • v:字符选择,从光标位置开始选择
    • V:行选择,选中整行
    • Ctrl+v:块选择,用于矩形区域编辑
    • 选择后可配合d删除、y复制、c剪切并进入插入模式。
  4. 命令行模式(Command-line Mode):用于执行复杂命令,通过以下方式进入:
    • 进入命令行,支持保存、退出、搜索等操作
    • 向下搜索
    • 向上搜索
    • Enter执行命令,按Esc取消。

文本编辑命令

在普通模式下,可通过快捷键高效编辑文本:

  1. 删除与剪切
    • x:删除光标处字符
    • dd:删除当前行
    • dw:删除一个单词
    • d$:删除到行尾
    • d^:删除到行首
    • ndd:删除n行(n为数字)
    • D:等同于d$,删除到行尾
  2. 复制与粘贴
    • y:复制,需配合选择命令,如yy复制当前行,yw复制一个单词
    • p:在光标后粘贴
    • P:在光标前粘贴
    • nyy:复制n行
  3. 撤销与重做
    • u:撤销上一步操作
    • Ctrl+r:重做被撤销的操作
    • U:撤销对当前行的所有修改
  4. 替换与修改
    • r:替换光标处字符(按r后输入新字符)
    • R:进入替换模式,连续替换光标后字符
    • c:修改,如cc删除当前行并进入插入模式,cw修改一个单词
    • s:删除光标处字符并进入插入模式
    • S:等同于cc

文件操作与命令行模式

命令行模式(按进入)支持文件管理及高级功能:

  1. 保存与退出
    • w:保存文件
    • q:退出vim
    • wq:保存并退出
    • q!:强制退出(不保存修改)
    • wq!:强制保存并退出(需文件权限)
    • x:保存并退出(若文件未修改则不写入)
  2. 文件另存与读取
    • w filename:将文件另存为filename
    • r filename:读取文件内容到当前光标位置
  3. 缓冲区与标签页
    • bn:切换到下一个缓冲区
    • bp:切换到上一个缓冲区
    • b num:切换到编号为num的缓冲区
    • tabnew:新建标签页
    • tabn:切换到下一个标签页
    • tabp:切换到上一个标签页
    • tabclose:关闭当前标签页

搜索与替换

vim支持强大的文本搜索与替换功能:

vim核心使用命令有哪些?-图2
(图片来源网络,侵删)
  1. 搜索文本
    • /pattern:向下搜索pattern(pattern为正则表达式)
    • ?pattern:向上搜索pattern
    • n:跳转到下一个搜索结果
    • N:跳转到上一个搜索结果
    • /pattern\c:忽略大小写搜索(\c表示不区分大小写)
    • set ic:设置搜索时忽略大小写(set noic恢复)
  2. 替换文本
    • s/pattern/replacement/g:替换当前行中所有pattern为replacement
    • %s/pattern/replacement/g:替换整个文件中所有pattern为replacement
    • n,ms/pattern/replacement/g:替换第n行到第m行的pattern为replacement
    • s/pattern/replacement/gc:替换时每次确认(需输入y确认替换,n跳过)

光标导航与窗口管理

高效的光标移动和窗口分割可提升编辑效率:

  1. 光标快速移动
    • w:移动到下一个单词开头
    • e:移动到当前单词末尾
    • b:移动到上一个单词开头
    • 0^:移动到行首(0到绝对行首,^到第一个非空字符)
    • 移动到行尾
    • gg:移动到文件第一行
    • G:移动到文件最后一行
    • nG:移动到第n行(如10G跳转到第10行)
    • H:移动到屏幕首行
    • M:移动到屏幕中间行
    • L:移动到屏幕末行
  2. 窗口操作
    • splitsp:水平分割窗口
    • vsplitvs:垂直分割窗口
    • Ctrl+w w:在窗口间切换
    • Ctrl+w h/j/k/l:切换到左/下/上/右窗口
    • Ctrl+w +:增加当前窗口高度
    • Ctrl+w -:减少当前窗口高度
    • Ctrl+w =:使所有窗口等高
    • q:关闭当前窗口(若为最后一个窗口则退出vim)

高级技巧与自定义

  1. 宏录制与执行
    • q + 字母键(如q a):开始录制宏到寄存器a
    • q:停止录制
    • + 字母键(如@ a):执行寄存器a中的宏
    • 重复执行上一次执行的宏
  2. 多光标编辑
    • 普通模式下按Ctrl+v进入块选择模式,选中多行后按IA插入文本,按Esc批量插入
    • 插入模式下按Ctrl+nCtrl+x进行自动补全
  3. 自动补全与代码折叠
    • Ctrl+x Ctrl+f:补全文件名
    • Ctrl+x Ctrl+l:补全整行
    • zf + 动作(如zf 5G):创建从当前行到第5行的折叠
    • zo:展开折叠
    • zc:折叠
    • zM:折叠所有
    • zR:展开所有
  4. 自定义配置
    • 在用户目录下创建.vimrc文件配置vim,
      set number          " 显示行号
      set tabstop=4       " 制表符宽度为4
      set expandtab       " 将制表符转换为空格
      set autoindent      " 自动缩进
      set syntax on       " 开启语法高亮
    • 配置文件修改后需重启vim或执行source %生效。

常用命令速查表

功能分类 命令 说明
模式切换 i/a/o 进入插入模式
Esc 返回普通模式
v/V/Ctrl+v 进入可视模式(字符/行/块)
光标移动 hjkl 左/下/上/右移动
w/e/b 单词级别移动
gg/G 跳转首行/末行
文本编辑 dd/yy/p 删除行/复制行/粘贴
u/Ctrl+r 撤销/重做
搜索替换 /pattern 向下搜索
%s/old/new/g 全局替换
文件操作 w/q/wq 保存/退出/保存并退出
窗口管理 split/vsplit 水平/垂直分割窗口
Ctrl+w w 切换窗口

FAQs

问题1:如何在vim中同时编辑多个文件?
解答:可通过以下方式实现:

  1. 启动vim时指定多个文件:vim file1.txt file2.txt,通过bn/bp切换文件;
  2. 在vim中使用split file2.txt水平分割窗口打开第二个文件,通过Ctrl+w w在窗口间切换;
  3. 使用标签页管理:tabnew file2.txt新建标签页,通过tabn/tabp切换。

问题2:vim中如何批量删除包含特定字符串的行?
解答:可通过搜索与替换实现:

  1. 使用v/pattern/d命令(v表示非匹配行,d表示删除),例如删除包含"error"的行:v/error/d
  2. 或结合可视模式:输入/pattern搜索后,按Ctrl+nCtrl+x标记所有匹配项,按V进入行选择模式,按d删除;
  3. 若需精确匹配,可在pattern中使用正则表达式,如v/^\s*error/d删除行首或包含空格的"error"行。
vim核心使用命令有哪些?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇