vi/vim常用命令整理

文章目录

  • [一、Vim 是什么?](#一、Vim 是什么?)
  • 二、核心概念:模式(Modes)
  • 三、常用命令速查表
    • [1. 启动与退出](#1. 启动与退出)
    • [2. 光标移动(**正常模式**下)](#2. 光标移动(正常模式下))
    • [3. 插入文本(从**正常模式**进入**插入模式**)](#3. 插入文本(从正常模式进入插入模式))
    • [4. 删除与撤销](#4. 删除与撤销)
    • [5. 复制与粘贴](#5. 复制与粘贴)
    • [6. 搜索与替换](#6. 搜索与替换)
    • [7. 可视模式操作](#7. 可视模式操作)
  • 四、实用技巧与进阶命令

一、Vim 是什么?

Vim(Vi IMproved )是一个高度可配置的、功能强大的文本编辑器,是经典 Unix 编辑器 vi 的增强版。它以模态编辑(Modal Editing)为核心设计,这意味着在不同模式下,相同的按键会执行不同的操作。

核心特点:

  1. 无处不在:预装在几乎所有的 Linux 和 macOS 系统上,是系统管理员和开发者在命令行环境下的首选编辑器。
  2. 高效快捷:完全基于键盘操作,双手无需离开主键区,一旦熟练,编辑速度极快。
  3. 高度可定制 :通过 .vimrc 配置文件和无数的插件,你可以将其打造成一个强大的 IDE(集成开发环境)。
  4. 稳定轻量:处理大型文件时表现优异,资源占用极低。

二、核心概念:模式(Modes)

理解模式是学习 Vim 的关键。最常用的模式有以下几种:

  1. 正常模式(Normal Mode)

    • 默认模式,也是你启动 Vim 后进入的模式。
    • 在此模式下,按键用于执行命令,如移动光标、复制、粘贴、删除等,而不是输入文本。
    • 从其他模式按 ESC 键返回正常模式。
  2. 插入模式(Insert Mode)

    • 在此模式下,你可以像使用常规编辑器(如记事本、VSCode)一样输入和编辑文本
    • 从正常模式按 i(insert)、a(append)、o(open new line)等键进入。
  3. 可视模式(Visual Mode)

    • 用于选择文本。类似于用鼠标拖选。
    • 从正常模式按 v(字符可视)、V(行可视)、Ctrl+v(块可视)进入。
  4. 命令模式(Command-Line Mode)

    • 用于执行Ex 命令,如保存、退出、搜索替换等。
    • 从正常模式按 : 进入。

三、常用命令速查表

1. 启动与退出

命令 说明
vim filename 打开或新建文件
:q 退出(如果文件未修改)
:q! 强制退出,不保存修改
:w 保存
:wq:xZZ 保存并退出
:w new_filename 另存为

2. 光标移动(正常模式下)

命令 说明
h j k l 左、下、上、右(推荐代替方向键)
w / W 移动到下一个单词开头(标点分隔/空格分隔)
b / B 移动到上一个单词开头
e / E 移动到下一个单词结尾
0(零) 移动到行首
^ 移动到行首第一个非空白字符
$ 移动到行尾
gg 移动到文件第一行
G 移动到文件最后一行
5G:5 移动到第 5 行
Ctrl + f 向下翻页(Page Down)
Ctrl + b 向上翻页(Page Up)
} 移动到下一个段落(代码块)
{ 移动到上一个段落(代码块)

3. 插入文本(从正常模式 进入插入模式

命令 说明
i 光标前插入
a 光标后插入
I 行首插入
A 行尾插入
o 当前行下方新建一行并插入
O 当前行上方新建一行并插入
s 删除当前字符并插入
Scc 删除当前行并插入

4. 删除与撤销

命令 说明
x 删除光标所在的字符
dw 删除一个单词(从光标处开始)
d$D 删除从光标到行尾
d0 删除从光标到行首
dd 删除当前行
3dd 删除 3 行
u 撤销(Undo)
Ctrl + r 重做(Redo),即撤销的撤销

5. 复制与粘贴

命令 说明
yy 复制当前行
3yy 复制 3 行
yw 复制一个单词
y$ 复制到行尾
p 在光标粘贴
P 在光标粘贴

6. 搜索与替换

命令 说明
/pattern 向下搜索字符串 "pattern"
?pattern 向上搜索字符串 "pattern"
n 跳到下一个匹配项
N 跳到上一个匹配项
:%s/old/new/g 全局替换 (将文件中所有的 old 替换为 new
:%s/old/new/gc 全局替换,但每次替换前请求确认
:s/old/new/g 替换当前行 的所有 old

7. 可视模式操作

命令 说明
v 进入字符可视模式
V 进入行可视模式
Ctrl + v 进入块可视模式(非常强大)
选择文本后,可以:
dx 剪切选中的文本
y 复制选中的文本
: 对选中的行执行命令(如 :s/old/new/

四、实用技巧与进阶命令

  1. 重复命令

    • 在命令前加数字表示重复次数,如 5j 向下移动 5 行,3dd 删除 3 行。
  2. 组合命令

    • d(删除)、y(复制)、c(修改并进入插入模式)是操作符 ,可以和移动命令组合。
    • dw = d(elete) + w(ord) → 删除一个单词
    • c$ = c(hange) + $(到行尾) → 删除到行尾并进入插入模式
    • y} = y(ank) + }(到下一段) → 复制到下一段
  3. 分屏操作

    • :sp filename:水平分屏打开文件
    • :vsp filename:垂直分屏打开文件
    • Ctrl + ww:在窗口间切换
  4. 打开多个文件

    • vim file1 file2:打开多个文件
    • :n:编辑下一个文件
    • :N:prev:编辑上一个文件

创作不易,欢迎打赏,你的鼓励将是我创作的最大动力。