菜鸟科技网

vim命令操作大全有哪些必备技巧?

Vim是一款功能强大的文本编辑器,其命令操作丰富且高效,掌握这些命令能极大提升编辑效率,以下从基础操作、光标移动、文本编辑、查找替换、窗口操作等多方面详细介绍Vim命令。

vim命令操作大全有哪些必备技巧?-图1
(图片来源网络,侵删)

基础操作

Vim有三种主要模式:普通模式(默认)、插入模式和命令行模式。

  • 进入插入模式

    • i:在光标前插入
    • a:在光标后插入
    • o:在当前行下方插入新行
    • I:在行首插入
    • A:在行尾插入
    • O:在当前行上方插入新行
  • 退出到普通模式Esc(在任何模式下按Esc返回普通模式)

  • 保存与退出

    vim命令操作大全有哪些必备技巧?-图2
    (图片来源网络,侵删)
    • w:保存文件
    • q:退出Vim
    • wqx:保存并退出
    • q!:不保存强制退出

光标移动

普通模式下,光标移动是高效编辑的关键:

  • 基本移动

    • h:左移一个字符
    • j:下移一行
    • k:上移一行
    • l:右移一个字符
    • w:移动到下一个单词开头
    • e:移动到当前单词末尾
    • b:移动到上一个单词开头
    • 0(数字零):移动到行首
    • 移动到行尾
  • 行内跳转

    • f{字符}:跳转到行内第一次出现的字符位置
    • t{字符}:跳转到字符前一个位置
    • 重复上一次ft命令
    • 反向重复上一次ft命令
  • 页面移动

    vim命令操作大全有哪些必备技巧?-图3
    (图片来源网络,侵删)
    • Ctrl+f:向下翻页
    • Ctrl+b:向上翻页
    • Ctrl+d:向下半页翻页
    • Ctrl+u:向上半页翻页
    • G:跳转到文件末尾
    • gg:跳转到文件开头

文本编辑

普通模式下的编辑命令:

  • 删除操作

    • x:删除光标所在字符
    • dd:删除当前行
    • dw:删除一个单词
    • d$:删除到行尾
    • d0:删除到行首
    • ndd:删除n行(n为数字)
  • 复制与粘贴

    • y(yank):复制,需搭配移动命令,如yy复制当前行,yw复制一个单词
    • p:在光标后粘贴
    • P:在光标前粘贴
    • nyy:复制n行
  • 剪切与替换

    • d命令可视为剪切,删除的内容可粘贴
    • r{字符}:替换光标所在字符为指定字符
    • R:进入替换模式,连续替换直到按Esc
  • 撤销与重做

    • u:撤销上一步操作
    • Ctrl+r:重做被撤销的操作

查找与替换

  • 查找文本

    • /pattern:向下查找匹配pattern的文本,按n跳转到下一个匹配项,N反向跳转
    • ?pattern:向上查找,nN方向相反
  • 替换文本

    • s/old/new:替换当前行中第一次出现的oldnew
    • s/old/new/g:替换当前行中所有oldnew
    • %s/old/new/g:替换整个文件中所有oldnew
    • %s/old/new/gc:替换时每次确认(需输入y确认替换,n跳过)

窗口操作

Vim支持多窗口编辑,提升多文件操作效率:

  • 分割窗口

    • splitsp:水平分割窗口
    • vsplitvs:垂直分割窗口
    • new:新建水平窗口并打开新文件
    • vnew:新建垂直窗口并打开新文件
  • 窗口切换与关闭

    • Ctrl+w+w:在窗口间循环切换
    • Ctrl+w+h/j/k/l:切换到左/下/上/右窗口
    • q:关闭当前窗口
    • only:关闭其他窗口,仅保留当前窗口

可视模式

可视模式用于选中文本进行批量操作:

  • 进入可视模式

    • v:字符可视模式,选中连续字符
    • V:行可视模式,选中整行
    • Ctrl+v:块可视模式,选中矩形区域
  • 可视模式操作

    • 选中后可直接使用d(删除)、y(复制)、c(修改)等命令
    • 块可视模式下,IA可批量插入文本

高级技巧

  • 录制宏

    • q{字符}开始录制(如qa),q结束录制,@{字符}执行宏(如@a
  • 折叠代码

    • zf{motion}:创建折叠(如zf5j折叠5行)
    • zo:展开折叠
    • zc:折叠当前代码块
  • 自动补全

    • Ctrl+x Ctrl+l:补全整行
    • Ctrl+n:基于当前文件内容补全

相关命令速查表

功能类别 命令 说明
模式切换 i/a/o 进入插入模式
Esc 返回普通模式
光标移动 hjkl/w/b/e 基本移动与单词跳转
gg/G 跳转文件开头/末尾
删除 x/dd/dw 删除字符/行/单词
复制粘贴 yy/yw/p/P 复制行/单词/粘贴
查找替换 /pattern/%s/old/new/g 查找/全局替换
窗口操作 split/vsplit/Ctrl+w+w 分割窗口/切换窗口
可视模式 v/V/Ctrl+v 字符/行/块选中文本

相关问答FAQs

Q1: 如何在Vim中同时编辑多个文件?
A1: 使用Vim的窗口分割功能,可通过split(水平分割)或vsplit(垂直分割)打开多个文件窗口,通过Ctrl+w+w在窗口间切换,或使用tabnew新建标签页编辑不同文件。

Q2: Vim中如何实现批量替换多个文件中的文本?
A2: 使用argdo命令结合substitute,步骤如下:

  1. 使用args *.txt(假设替换所有.txt文件)指定文件列表;
  2. 执行argdo %s/old/new/g | update,其中| update保存每个文件的修改。
分享:
扫描分享到社交APP
上一篇
下一篇