Vim常用命令详解:从入门到高效编辑

Vim模式基础

Vim主要有三种工作模式,理解这三种模式是使用Vim的基础:

1. 命令模式(Normal Mode)

  • 启动Vim后的默认模式
  • 用于移动光标、删除文本、复制粘贴等操作
  • 按Esc键可从其他模式返回命令模式

2. 插入模式(Insert Mode)

  • 用于输入文本内容
  • 从命令模式按i进入插入模式
  • 按Esc返回命令模式

3. 底线命令模式(Command-line Mode)

  • 用于执行保存、退出等命令
  • 从命令模式按:进入
  • 执行完毕后自动返回命令模式

光标移动命令

基本移动

vim 复制代码
h       # 向左移动一个字符
j       # 向下移动一行
k       # 向上移动一行
l       # 向右移动一个字符

行内快速移动

vim 复制代码
0       # 移动到行首
$       # 移动到行尾
^       # 移动到行首第一个非空白字符
w       # 移动到下一个单词开头
b       # 移动到上一个单词开头
e       # 移动到当前单词结尾

文件内快速移动

vim 复制代码
gg      # 移动到文件开头
G       # 移动到文件结尾
:n      # 移动到第n行(如:10)
%       # 移动到匹配的括号(()、[]、{})

屏幕滚动

vim 复制代码
Ctrl+f  # 向下滚动一屏
Ctrl+b  # 向上滚动一屏
Ctrl+d  # 向下滚动半屏
Ctrl+u  # 向上滚动半屏
H       # 移动到屏幕顶部
M       # 移动到屏幕中间
L       # 移动到屏幕底部

文本编辑命令

插入文本

vim 复制代码
i       # 在光标前插入文本
a       # 在光标后插入文本
o       # 在当前行下方插入新行
O       # 在当前行上方插入新行
I       # 在行首插入文本
A       # 在行尾插入文本

删除文本

vim 复制代码
x       # 删除光标处字符
X       # 删除光标前一个字符
dd      # 删除当前行
dw      # 删除当前单词
d0      # 删除到行首
d$      # 删除到行尾
D       # 删除到行尾(同d$)
:n1,n2d # 删除n1到n2行

复制粘贴

vim 复制代码
yy      # 复制当前行
yw      # 复制当前单词
y0      # 复制到行首
y$      # 复制到行尾
p       # 在光标后粘贴
P       # 在光标前粘贴

替换文本

vim 复制代码
r       # 替换光标处字符
R       # 进入替换模式,连续替换
cc      # 替换当前行
cw      # 替换当前单词
C       # 替换到行尾
s       # 替换光标处字符并进入插入模式
S       # 替换当前行并进入插入模式

搜索替换命令

搜索文本

vim 复制代码
/pattern    # 向下搜索pattern
?pattern    # 向上搜索pattern
n           # 重复上一次搜索
N           # 反向重复上一次搜索
*           # 搜索光标所在单词
#           # 反向搜索光标所在单词

替换文本

vim 复制代码
:s/old/new      # 替换当前行第一个old为new
:s/old/new/g    # 替换当前行所有old为new
:%s/old/new/g   # 替换文件中所有old为new
:n1,n2s/old/new/g # 替换n1到n2行的old为new
:%s/old/new/gc  # 替换时要求确认

文件操作命令

基本操作

vim 复制代码
:w          # 保存文件
:w filename # 保存为filename文件
:q          # 退出Vim
:q!         # 强制退出(不保存)
:wq         # 保存并退出
:x          # 保存并退出(同:wq)
ZZ          # 保存并退出(同:wq)

文件管理

vim 复制代码
:e filename     # 打开filename文件
:e!             # 重新加载当前文件
:bn             # 切换到下一个文件
:bp             # 切换到上一个文件
:ls             # 列出所有打开的文件

多窗口操作

窗口分割

vim 复制代码
:split          # 水平分割窗口
:vsplit         # 垂直分割窗口
:only           # 关闭其他窗口,保留当前窗口
:close          # 关闭当前窗口

窗口切换

vim 复制代码
Ctrl+w w        # 在窗口间循环切换
Ctrl+w h        # 切换到左边窗口
Ctrl+w j        # 切换到下边窗口
Ctrl+w k        # 切换到上边窗口
Ctrl+w l        # 切换到右边窗口

实用技巧

撤销与重做

vim 复制代码
u       # 撤销上一次操作
Ctrl+r  # 重做被撤销的操作
.       # 重复上一次操作

宏操作

vim 复制代码
qa      # 开始录制宏a
q       # 停止录制宏
@a      # 执行宏a
@@      # 重复执行上一次宏

缩进操作

vim 复制代码
>>      # 当前行向右缩进
<<      # 当前行向左缩进
:n1,n2>> # n1到n2行向右缩进
:n1,n2<< # n1到n2行向左缩进
=       # 自动缩进当前行
=G      # 自动缩进到文件结尾
相关推荐
『往事』&白驹过隙;3 小时前
ARM环境日志系统的简单设计思路
linux·c语言·数据结构·物联网·iot·日志系统
jiunian_cn4 小时前
【Linux网络】IP协议
linux·网络·tcp/ip
tt5555555555557 小时前
Linux启动流程与字符设备驱动详解 - 从bootloader到驱动开发
linux·运维·驱动开发
一只游鱼9 小时前
linux使用yum安装数据库
linux·mysql·adb
大白的编程日记.10 小时前
【Linux学习笔记】线程概念和控制(三)
linux·笔记·学习
L_090713 小时前
【Linux】Linux 常用指令2
linux·服务器
报错小能手13 小时前
linux学习笔记(13)文件操作
linux·笔记·学习
evo-master13 小时前
linux问题10--克隆后ip地址和源linux主机相同
linux·运维·服务器
LadyKaka22613 小时前
【IMX6ULL驱动学习】PWM驱动
linux·stm32·单片机·学习