vi快捷键大全

Vim 是一款功能强大的文本编辑器,熟练掌握其快捷键可以极大提高编辑效率。以下是 Vim 常用快捷键的分类整理,涵盖基本操作、移动、编辑、查找替换、分屏等核心功能:

一、模式切换

Vim 有多种模式,最常用的是 Normal 模式(命令模式)、Insert 模式(编辑模式)和 Visual 模式(可视化选择)。

  • 进入 Insert 模式:
    • i:在当前光标前插入
    • a:在当前光标后插入
    • I:在当前行首插入
    • A:在当前行尾插入
    • o:在当前行下方新开一行并进入插入模式
    • O:在当前行上方新开一行并进入插入模式
  • 返回 Normal 模式:
    • Esc 或 Ctrl+[
  • Visual 模式:
    • v:字符选择(按字符逐个选择)
    • V:行选择(整行选择)
    • Ctrl+v:块选择(矩形区域选择)
  • 命令行模式:
    • ::进入命令行模式(如保存、退出等)

二、光标移动

在 Normal 模式下,使用以下快捷键移动光标:

  • 基本移动:
    • h:左移
    • j:下移
    • k:上移
    • l:右移
    • 等价于方向键,但效率更高
  • 单词间移动:
    • w:移动到下一个单词的词首
    • b:移动到上一个单词的词首
    • e:移动到当前/下一个单词的词尾
    • ge:移动到上一个单词的词尾
  • 行内移动:
    • 0:移动到行首(第一个字符位置)
    • ^:移动到行首的第一个非空白字符
    • $:移动到行尾
    • f<char>:在当前行中查找下一个指定字符(如 fa 查找下一个 a
    • F<char>:在当前行中查找上一个指定字符
    • t<char>:移动到当前行中下一个指定字符的前一个位置
    • T<char>:移动到当前行中上一个指定字符的后一个位置
    • ;:重复上一次的 fFt 或 T 查找
    • ,:反向重复上一次的 fFt 或 T 查找
  • 行间移动:
    • gg:移动到文件开头
    • G:移动到文件结尾
    • nG 或 :n:移动到第 n 行(如 10G 移动到第 10 行)
    • %:跳转到匹配的括号(如 ()[]{}
  • 屏幕内移动:
    • H:移动到屏幕顶部
    • M:移动到屏幕中间
    • L:移动到屏幕底部
    • Ctrl+u:向上滚动半屏
    • Ctrl+d:向下滚动半屏
    • Ctrl+f:向前滚动一屏(下一页)
    • Ctrl+b:向后滚动一屏(上一页)

三、文本编辑

  • 删除/剪切:
    • x:删除当前光标所在字符(相当于 dl
    • X:删除当前光标前的字符(相当于 dh
    • dd:删除当前行(并放入剪贴板,可用于粘贴)
    • ndd:删除从当前行开始的 n 行(如 3dd 删除 3 行)
    • dw:删除从当前光标位置到下一个单词词首的内容
    • de:删除从当前光标位置到当前/下一个单词词尾的内容
    • d$:删除从当前光标位置到行尾的内容
    • d0 或 d^:删除从当前光标位置到行首的内容
    • d%:删除从当前光标位置到匹配括号之间的内容
    • dG:删除从当前行到文件结尾的内容
    • dgg:删除从当前行到文件开头的内容
  • 复制/粘贴:
    • yy 或 Y:复制当前行(Y 等价于 y$
    • nyy:复制从当前行开始的 n 行(如 3yy 复制 3 行)
    • yw:复制从当前光标位置到下一个单词词首的内容
    • ye:复制从当前光标位置到当前/下一个单词词尾的内容
    • y$:复制从当前光标位置到行尾的内容
    • y0 或 y^:复制从当前光标位置到行首的内容
    • p:在当前光标后粘贴剪贴板内容
    • P:在当前光标前粘贴剪贴板内容
  • 替换:
    • r<char>:替换当前光标所在字符为指定字符(如 ra 将当前字符替换为 a
    • R:进入替换模式,持续替换后续字符,按 Esc 退出
    • cw:删除从当前光标位置到下一个单词词首的内容,并进入插入模式
    • ciw:删除当前单词(不包括周围空格),并进入插入模式
    • c$:删除从当前光标位置到行尾的内容,并进入插入模式
  • 撤销/重做:
    • u:撤销上一步操作
    • Ctrl+r:重做(恢复撤销的操作)
  • 合并行:
    • J:将当前行与下一行合并为一行,并用空格分隔
  • 大小写转换:
    • ~:切换当前光标所在字符的大小写
    • guw:将当前单词转换为小写
    • gUw:将当前单词转换为大写
    • guu:将当前行转换为小写
    • gUU:将当前行转换为大写

四、查找与替换

  • 查找:
    • /pattern:向前查找指定模式(如 /hello 查找 hello
    • ?pattern:向后查找指定模式
    • n:重复上一次查找(方向相同)
    • N:反向重复上一次查找(方向相反)
    • *:查找当前光标所在的单词(向前)
    • #:查找当前光标所在的单词(向后)
  • 替换:
    • :%s/old/new/g:全局替换(将所有 old 替换为 new
    • :%s/old/new/gc:全局替换,每次替换前询问确认
    • :s/old/new/:只替换当前行的第一个 old
    • :s/old/new/g:替换当前行的所有 old
    • :n,ms/old/new/g:替换第 n 行到第 m 行之间的所有 old(如 :1,10s/old/new/g

五、文件操作

  • 保存与退出:
    • :w:保存文件
    • :w!:强制保存(即使文件为只读)
    • :q:退出
    • :q!:强制退出(不保存修改)
    • :wq 或 ZZ:保存并退出
    • :wq!:强制保存并退出
  • 另存为与读取文件:
    • :w filename:将当前内容另存为指定文件
    • :r filename:读取指定文件的内容并插入到当前光标位置
  • 文件信息:
    • :f 或 :file:显示当前文件名、文件状态等信息

六、分屏操作

  • 创建分屏:
    • :split 或 :sp:水平分屏(上下两个窗口)
    • :vsplit 或 :vsp:垂直分屏(左右两个窗口)
    • :new:水平分屏并创建新文件
    • :vnew:垂直分屏并创建新文件
  • 切换分屏:
    • Ctrl+w w:在分屏窗口间循环切换
    • Ctrl+w h:切换到左边的窗口
    • Ctrl+w j:切换到下边的窗口
    • Ctrl+w k:切换到上边的窗口
    • Ctrl+w l:切换到右边的窗口
    • Ctrl+w q:关闭当前窗口(等价于 :q
  • 调整分屏大小:
    • Ctrl+w +:增加当前窗口高度
    • Ctrl+w -:减少当前窗口高度
    • Ctrl+w >:增加当前窗口宽度
    • Ctrl+w <:减少当前窗口宽度
    • Ctrl+w =:使所有窗口等宽等高

七、高级技巧

  • 寄存器操作:
    • "ayy:将当前行复制到寄存器 aa 可以是任意字母)
    • "ap:从寄存器 a 粘贴内容
    • :registers:查看所有寄存器内容
  • 宏录制:
    • qa:开始录制宏到寄存器 a
    • q:停止录制宏
    • @a:执行寄存器 a 中的宏
    • n@a:重复执行宏 n 次(如 10@a 执行 10 次)
  • 快速注释/取消注释:
    • 在 Visual 模式下选择多行,然后按 : 进入命令行模式,输入 s/^/#/ 可以添加 # 注释
    • 若要取消注释,输入 s/^#//
  • 自动补全:
    • 在 Insert 模式下,按 Ctrl+n 或 Ctrl+p 进行关键字补全

八、配置与帮助

  • 临时配置:
    • :set number 或 :set nu:显示行号
    • :set nonumber 或 :set nonu:隐藏行号
    • :set tabstop=4:设置 Tab 键宽度为 4 个空格
    • :set shiftwidth=4:设置自动缩进宽度为 4 个空格
    • :set expandtab:将 Tab 键转换为空格
    • :set paste:进入粘贴模式(避免自动缩进干扰)
    • :set nopaste:退出粘贴模式
  • 帮助文档:
    • :help:打开帮助文档
    • :help command:查看特定命令的帮助(如 :help w
    • :help subject:查看特定主题的帮助(如 :help registers
    • :help :w:查看命令行模式下 :w 命令的帮助

九、实用组合快捷键

  • 快速创建函数框架:
    • 在 Insert 模式下,输入 def 后按 Ctrl+x Ctrl+](需先安装 Python 补全插件)
  • 快速添加引号:
    • 在 Visual 模式下选择文本,然后按 S" 或 S' 添加引号
  • 快速添加括号:
    • 在 Visual 模式下选择文本,然后按 S( 或 S[ 添加括号

十、自定义配置(.vimrc

可在用户主目录下创建 .vimrc 文件,添加以下常用配置:

vim
 
 
" 显示行号
set number

" 设置 Tab 为 4 个空格
set tabstop=4
set shiftwidth=4
set expandtab

" 启用语法高亮
syntax on

" 搜索时不区分大小写
set ignorecase

" 智能搜索大小写(有大写字母时区分)
set smartcase

" 自动缩进
set autoindent

" 鼠标支持
set mouse=a

" 启用撤销文件(持久化撤销历史)
set undofile
 

总结

掌握 Vim 快捷键需要一定的练习,但一旦熟练使用,将大幅提升文本编辑效率。建议从基础操作开始,逐步学习高级技巧,并根据自己的使用习惯定制 .vimrc 配置文件。
 
vim快捷键大全
 
以下是整理后的 Vim 快捷键终极指南,按功能分类并标注使用频率,助你高效掌握:

一、基础模式切换(⭐⭐⭐⭐⭐)

plaintext
 
 
i   → 进入插入模式(光标前)
a   → 进入插入模式(光标后)
I   → 行首插入(第一个非空格字符)
A   → 行尾插入
o   → 下一行插入(新开一行)
O   → 上一行插入
Esc → 返回命令模式(或 Ctrl+[)
v   → 字符可视化模式
V   → 行可视化模式
Ctrl+v → 块可视化模式
:   → 进入命令行模式(如 :wq 保存退出)
 

二、光标移动(⭐⭐⭐⭐⭐)

基础移动(替代方向键):

plaintext
 
 
h   ← 左移
j   ↓ 下移
k   ↑ 上移
l   → 右移
 

单词 / 行内移动:

plaintext
 
 
w   → 下一个单词词首
b   ← 上一个单词词首
e   → 单词词尾
0   → 行首(第一个字符)
^   → 行首(第一个非空格字符)
$   → 行尾
f{char} → 本行查找下一个 {char}(如 fa 找 a)
t{char} → 本行查找下一个 {char} 前一个位置
;   → 重复上一次 f/t 查找
,   → 反向重复上一次 f/t 查找
 

行间 / 文件移动:

plaintext
 
 
gg  → 文件开头
G   → 文件结尾
nG  → 第 n 行(如 10G 到第 10 行)
%   → 匹配括号 (), [], {}
H   → 屏幕顶部
M   → 屏幕中间
L   → 屏幕底部
Ctrl+u → 向上滚动半屏
Ctrl+d → 向下滚动半屏
 

三、文本编辑(⭐⭐⭐⭐⭐)

删除 / 剪切:

plaintext
 
 
x   → 删除当前字符
dd  → 删除当前行(可用于粘贴)
ndd → 删除 n 行(如 3dd 删除 3 行)
dw  → 删除到下一个单词开头
d$  → 删除到行尾
d0  → 删除到行首
d%  → 删除到匹配括号
 

复制 / 粘贴:

plaintext
 
 
yy  → 复制当前行
nyy → 复制 n 行
yw  → 复制单词
y$  → 复制到行尾
p   → 粘贴(光标后)
P   → 粘贴(光标前)
 

替换 / 修改:

plaintext
 
 
r{char} → 替换当前字符(如 ra 替换为 a)
R   → 进入替换模式(持续替换)
cw  → 删除单词并进入插入模式
u   → 撤销
Ctrl+r → 重做
J   → 合并当前行与下一行
~   → 切换字符大小写
 

四、查找与替换(⭐⭐⭐⭐)

查找:

plaintext
 
 
/pattern → 向前查找(如 /hello)
?pattern → 向后查找
n   → 重复上次查找(同方向)
N   → 反向重复
*   → 查找当前光标下的单词
 

替换:

plaintext
 
 
:%s/old/new/g → 全局替换 old 为 new
:%s/old/new/gc → 全局替换(每次询问)
:s/old/new/ → 当前行第一个匹配项
:n,ms/old/new/g → 第 n 行到 m 行替换
 

五、文件操作(⭐⭐⭐⭐)

plaintext
 
 
:w  → 保存
:w! → 强制保存(只读文件)
:q  → 退出
:q! → 强制退出(不保存)
:wq → 保存并退出
:saveas filename → 另存为
:r filename → 读取文件内容到当前位置
:f  → 显示当前文件名和状态
 

六、分屏与标签页(⭐⭐⭐)

分屏:
 
:sp  → 水平分屏
:vsp → 垂直分屏
Ctrl+w w → 切换窗口
Ctrl+w h → 左窗口
Ctrl+w j → 下窗口
Ctrl+w k → 上窗口
Ctrl+w l → 右窗口
Ctrl+w q → 关闭当前窗口
Ctrl+w = → 均等分屏
 

标签页:
 
:tabnew → 新建标签页
:tabnext → 下一个标签页
:tabprev → 上一个标签页
:tabclose → 关闭当前标签页
 

七、高级技巧(⭐⭐⭐)

寄存器:
"ayy → 复制当前行到寄存器 a
"ap  → 从寄存器 a 粘贴
:reg → 查看所有寄存器
 

宏录制:
 
qa  → 开始录制宏到 a
q   → 停止录制
@a  → 执行宏
10@a → 重复执行 10 次
 

可视模式操作:
 
v   → 字符选择
V   → 行选择
Ctrl+v → 块选择(矩形区域)
选中后:
  d → 删除选中内容
  y → 复制选中内容
  :s/old/new/g → 对选中内容替换
 

八、配置与帮助(⭐⭐)

临时配置:
 
:set number → 显示行号
:set nonumber → 隐藏行号
:set tabstop=4 → Tab 宽度为 4
:set expandtab → Tab 转换为空格
:set paste → 粘贴模式(避免格式错乱)
 

永久配置:
编辑 ~/.vimrc 添加:
 
set number          " 显示行号
set tabstop=4       " Tab 宽度
set expandtab       " 使用空格代替 Tab
syntax on           " 语法高亮
set autoindent      " 自动缩进
set mouse=a         " 启用鼠标
 

帮助:
 
:help → 打开帮助文档
:help command → 查看命令帮助(如 :help w)
:help subject → 查看主题帮助(如 :help registers)
 

九、效率组合(⭐⭐⭐⭐⭐)

ciw → 删除当前单词并进入插入模式
di" → 删除双引号内的内容(不包括引号)
da" → 删除双引号及内容
vi" → 选中双引号内的内容
va" → 选中双引号及内容
Ctrl+x Ctrl+f → 文件名补全
Ctrl+x Ctrl+o → 代码补全
 

十、常用缩写

w → write(保存)
q → quit(退出)
s → substitute(替换)
g → global(全局)
v → visual(可视化)
 

练习建议

  1. 每天掌握 5 个快捷键,持续一周即可大幅提升效率。
  2. 用 Vim 处理日常文本,如写代码、记笔记,形成肌肉记忆。
  3. 自定义 .vimrc,将常用配置写入,如行号、缩进等。
  4. 使用插件:如 NERDTree(文件树)、CtrlP(文件搜索)等。

通过系统化练习,Vim 会成为你效率最高的编辑器! 🚀

posted on 2025-05-12 09:05  数据派  阅读(824)  评论(0)    收藏  举报