Vim命令大全

文章目录

    • 简述:
      • [1. **命令模式(Command Mode)**](#1. 命令模式(Command Mode))
      • [2. **插入模式(Insert Mode)**](#2. 插入模式(Insert Mode))
      • [3. **可视模式(Visual Mode)**](#3. 可视模式(Visual Mode))
      • [4. **末行模式(Ex Mode)**](#4. 末行模式(Ex Mode))
    • 详细使用案例:
      • [1. **文件操作类**](#1. 文件操作类)
      • [2. **移动光标类**](#2. 移动光标类)
      • [3. **文本插入与删除类**](#3. 文本插入与删除类)
      • [4. **复制与粘贴类**](#4. 复制与粘贴类)
      • [5. **搜索替换类**](#5. 搜索替换类)
      • [6. **可视选择与操作类**](#6. 可视选择与操作类)
      • [7. **窗口操作类**](#7. 窗口操作类)
      • [8. **撤销与重做类**](#8. 撤销与重做类)
      • [9. **跳转到特定行号**](#9. 跳转到特定行号)
      • [10. **显示帮助信息**](#10. 显示帮助信息)
      • [11. **文本替换与查找类**](#11. 文本替换与查找类)
      • [12. **折叠代码块**](#12. 折叠代码块)
      • [13. **标记和跳转**](#13. 标记和跳转)
      • [14. **列选择模式**](#14. 列选择模式)
      • [15. **宏录制与回放**](#15. 宏录制与回放)
      • [16. **多文件编辑**](#16. 多文件编辑)
      • [17. **快速定位**](#17. 快速定位)
      • [18. **视觉差异比较**](#18. 视觉差异比较)

简述:

在Vim中,有三种主要的操作模式:命令模式(Command Mode)、插入模式(Insert Mode)和可视模式(Visual Mode)。以及一个特殊的末行模式(Ex Mode)。

1. 命令模式(Command Mode)

  • Vim启动时默认进入命令模式。如果你正在其他模式下操作,按下Esc键即可返回命令模式。

2. 插入模式(Insert Mode)

  • 若要从命令模式进入插入模式,可以使用以下命令:
    • i 在光标前开始插入
    • a 在光标后开始插入
    • I 在当前行的行首开始插入
    • A 在当前行的行尾开始插入
    • o 在当前行下方新开一行并插入
    • O 在当前行上方新开一行并插入

3. 可视模式(Visual Mode)

  • 从命令模式进入可视模式,可使用:
    • v 进入字符选择可视模式
    • V 进入行选择可视模式
    • <C-v><Ctrl+v> 进入块选择可视模式

4. 末行模式(Ex Mode)

  • 末行模式主要用于执行文件保存、退出、设置选项等操作。从命令模式进入末行模式,按:(冒号)即可。在末行模式下输入命令后回车执行,执行完毕后会回到命令模式。

例如,要执行:wq保存并退出文件,首先在命令模式下按:进入末行模式,然后输入wq并回车。

详细使用案例:

在Vim编辑器中,命令非常多且丰富,这里按功能分类列举10个基础且常用的命令及其实例:

1. 文件操作类

  • 打开文件

    复制代码
    vim filename.txt

    打开名为filename.txt的文件。

  • 保存文件

    复制代码
    :w

    保存当前正在编辑的文件。

  • 退出编辑器

    复制代码
    :q

    如果没有未保存的更改,退出Vim。

    若要强制退出(不保存更改):

    复制代码
    :q!

    若有更改并希望先保存后退出:

    复制代码
    :wq

2. 移动光标类

  • 向下移动一行

    复制代码
    j
  • 向上移动一行

    复制代码
    k
  • 向右移动一个字符

    复制代码
    l
  • 向左移动一个字符

    复制代码
    h
  • 移动到行首

    复制代码
    0 或 ^
  • 移动到行尾

    复制代码
    $

3. 文本插入与删除类

  • 插入模式下输入文本

    i 进入插入模式,然后可以像普通文本编辑器那样输入文本。

  • 在当前光标位置后插入文本

    复制代码
    iHello, world
    <ESC>

    输入"Hello, world"后按 <ESC> 返回正常模式。

  • 删除当前光标下的字符

    复制代码
    x
  • 删除从当前光标到行尾的所有字符

    复制代码
    d$

4. 复制与粘贴类

  • 复制一行

    复制代码
    yy
  • 粘贴到光标下方

    复制代码
    p

5. 搜索替换类

  • 向前搜索指定字符串

    复制代码
    /search_text
  • 全局替换

    复制代码
    :%s/old_text/new_text/g

6. 可视选择与操作类

  • 进入可视模式,选择一行

    复制代码
    V
  • 选中多行

    移动光标至开始行,按下 Shift + v 进入可视行块模式,移动光标到结束行。

  • 对选中的文本进行操作

    例如,选中文本后执行大写转换:

    复制代码
    gU

7. 窗口操作类

  • 分割窗口

    复制代码
    :sp filename.txt

    在垂直方向上分割窗口并打开新文件。

  • 切换窗口

    复制代码
    <C-w>h 或 <C-w>j 或 <C-w>k 或 <C-w>l

    分别表示向左、下、上、右切换窗口。

8. 撤销与重做类

  • 撤销操作

    复制代码
    u
  • 重做上次撤销的操作

    复制代码
    Ctrl + r

9. 跳转到特定行号

  • 跳转到第n行

    复制代码
    :n

10. 显示帮助信息

  • 打开内置帮助文档

    复制代码
    :help

    或者快速查找特定命令的帮助:

    复制代码
    :help command_name

11. 文本替换与查找类

  • 在当前行内查找并替换

    复制代码
    :s/old_text/new_text

    若要在整个文件中替换,使用全局标志 g:

    复制代码
    :%s/old_text/new_text/g
  • 递归搜索目录下的所有文件 (需安装插件如grep.vim):

    复制代码
    :Grepper -type f -rg 'search_text'

12. 折叠代码块

  • 折叠当前层级的所有折叠区域

    复制代码
    za
  • 打开当前层级的所有折叠区域

    复制代码
    zA
  • 逐级向下展开折叠

    复制代码
    zr
  • 逐级向上折叠

    复制代码
    zm

13. 标记和跳转

  • 设置标记

    复制代码
    ma

    在当前光标位置设置名为'a'的标记。

  • 跳转到标记

    复制代码
    `'a

    跳转到标记'a'的位置。

14. 列选择模式

  • 进入列选择模式

    复制代码
    Ctrl + v
  • 进行列操作

    进入列选择模式后,移动光标选择多列,然后可以执行删除、复制、粘贴等操作。例如删除选中的列内容:

    复制代码
    d

15. 宏录制与回放

  • 开始录制宏

    复制代码
    qa

    开始记录到寄存器'a'的宏。

  • 停止录制并结束宏

    按下需要的操作键序列后,按 q 停止录制。

  • 播放宏

    复制代码
    @a

    回放存储在寄存器'a'的宏。

16. 多文件编辑

  • 打开多个文件

    复制代码
    vim file1.txt file2.txt
  • 在不同的缓冲区间切换

    复制代码
    :bn 或 :bp

    分别表示下一个文件缓冲区或上一个文件缓冲区。

17. 快速定位

  • 跳转到特定字符

    复制代码
    f<char>

    向前查找并跳转到指定字符。

  • 跳转到匹配括号

    复制代码
    %

    如果光标位于左括号,将跳转到对应的右括号;反之亦然。

18. 视觉差异比较

  • 通过vimdiff比较两个文件

    复制代码
    vimdiff file1.txt file2.txt

以上是Vim中更多的命令及其示例,实际上Vim的功能非常强大,提供了丰富的命令集和自定义扩展能力。建议深入阅读Vim官方文档以了解更全面的信息,并通过实践来熟练掌握这些功能。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)


​最后我们放松一下眼睛

相关推荐
kooboo china.4 小时前
JSON 编辑器:从语法到数据处理(二)
编辑器·json
编码小笨猪5 小时前
浅谈Linux中一次系统调用的执行过程
linux·服务器·c++
早起鸟儿7 小时前
docker-Dockerfile 配置
java·linux·运维·docker
love530love10 小时前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp
m0_6948455711 小时前
日本云服务器租用多少钱合适
linux·运维·服务器·安全·云计算
摆渡搜不到你11 小时前
Visual Studio Code 1.101.0 官方版
ide·vscode·编辑器
一心09211 小时前
Linux部署bmc TrueSight 监控agent步骤
linux·运维·服务器·监控·bmc truesight
Florence2311 小时前
linux中执行脚本命令的source和“.”和“./”的区别
linux·运维·服务器
白日依山尽yy11 小时前
Linux02
linux·运维·服务器
liulilittle12 小时前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。
linux·服务器·c++·算法·安全·加密·openssl