Vim 实用技巧合集
本文收集了 Vim 编辑器中实用的操作技巧,帮助提高编辑效率。
在行首添加内容
操作步骤:
- 在普通模式下,按
Ctrl-v进入可视块模式 - 选择要添加内容的行,按
I进入插入模式 - 编辑内容,按
Esc退出插入模式,其他行会自动添加相同内容
示例:
原始文本:
line1
line2
line3
操作后:
prefix line1
prefix line2
prefix line3
在行尾添加内容
操作步骤:
- 在普通模式下,按
gv选择上次的选区(或手动选择) - 按
$跳转到行尾,按A进入插入模式 - 编辑内容,按
Esc退出插入模式
示例:
原始文本:
line1
line2
line3
操作后:
line1 suffix
line2 suffix
line3 suffix
Vim 录制和回放
录制宏:
- 在普通模式下,按
qa开始录制(a 是宏的名称,可以使用任意字母) - 按
i进入插入模式,编辑内容 - 按
Esc退出插入模式,按q停止录制
回放宏:
- 在普通模式下,按
@a回放名为 a 的宏 - 按
10@a回放宏 10 次
注意事项:
- 录制结束时,确保光标在下一行的开头
- 宏可以保存在寄存器中,重启 Vim 后仍然可用
- 使用
:reg a查看宏 a 的内容
强制保存文件
有时你可能在 Vim 中编辑了一个文件,但没有使用 sudo。当你需要保存时,可以使用以下命令:
:w !sudo tee %
命令解释:
:w:写入文件!sudo tee %:通过 sudo 执行 tee 命令,%表示当前文件名
操作流程:
- 编辑文件时忘记使用 sudo
- 尝试保存时提示权限不足
- 执行上述命令
- 输入密码确认
- 使用
:q!退出(不保存缓冲区)
快速跳转技巧
1. 位置跳转
Ctrl-o:跳转到上一个位置Ctrl-i:跳转到下一个位置- 这两个命令可以在两个文件之间互相跳转
2. 文件跳转
gf:跳转到光标指向的文件- 需要设置
path选项:set path+=**
3. URL 打开
gx:在浏览器中打开光标指向的 URL- 需要网络连接和合适的浏览器
更多实用技巧
1. 批量替换
# 替换当前行中的第一个匹配
:s/old/new/
# 替换当前行中的所有匹配
:s/old/new/g
# 替换整个文件中的匹配
:%s/old/new/g
# 替换时确认每个匹配
:%s/old/new/gc
2. 多窗口操作
# 水平分割窗口
:sp 文件名
# 或
Ctrl-w s
# 垂直分割窗口
:vsp 文件名
# 或
Ctrl-w v
# 切换窗口
Ctrl-w h/j/k/l # 左/下/上/右
Ctrl-w w # 循环切换
3. 标签页管理
# 新建标签页
:tabnew 文件名
# 或
:tabedit 文件名
# 切换标签页
:tabn # 下一个
:tabp # 上一个
:tabfirst # 第一个
:tablast # 最后一个
# 关闭标签页
:tabclose
# 或
:tabc
4. 寄存器使用
# 查看寄存器内容
:reg
# 复制到寄存器 a
"ayy # 复制当前行到寄存器 a
"ap # 粘贴寄存器 a 的内容
# 系统剪贴板
"+yy # 复制到系统剪贴板
"+p # 从系统剪贴板粘贴
5. 搜索和导航
# 搜索
/pattern # 向前搜索
?pattern # 向后搜索
n # 下一个匹配
N # 上一个匹配
# 标记位置
ma # 标记当前位置为 a
'a # 跳转到标记 a
:marks # 查看所有标记
6. 自动补全
# 在插入模式下
Ctrl-n # 下一个补全项
Ctrl-p # 上一个补全项
Ctrl-x Ctrl-f # 文件名补全
Ctrl-x Ctrl-l # 整行补全
7. 代码折叠
# 创建折叠
zf # 创建折叠
zd # 删除折叠
zo # 打开折叠
zc # 关闭折叠
zR # 打开所有折叠
zM # 关闭所有折叠
8. 缩进调整
# 增加缩进
>> # 当前行增加缩进
>G # 从当前行到文件末尾增加缩进
# 减少缩进
<< # 当前行减少缩进
<G # 从当前行到文件末尾减少缩进
# 自动缩进
=G # 从当前行到文件末尾自动缩进
gg=G # 整个文件自动缩进
9. 文本对象操作
# 操作单词
ciw # 修改当前单词
caw # 修改当前单词(包括空格)
diw # 删除当前单词
daw # 删除当前单词(包括空格)
# 操作引号内容
ci" # 修改双引号内的内容
ci' # 修改单引号内的内容
ci` # 修改反引号内的内容
# 操作括号内容
ci( # 修改圆括号内的内容
ci[ # 修改方括号内的内容
ci{ # 修改花括号内的内容
10. 快速编辑
# 重复操作
. # 重复上一次修改
@: # 重复上一次 Ex 命令
# 大小写转换
~ # 切换当前字符大小写
g~~ # 切换当前行大小写
gUw # 将单词转换为大写
guw # 将单词转换为小写
配置建议
1. 添加快捷键
" 快速保存
nnoremap <leader>w :w<CR>
" 快速退出
nnoremap <leader>q :q<CR>
" 清除搜索高亮
nnoremap <leader>h :nohlsearch<CR>
" 切换行号显示
nnoremap <leader>n :set number!<CR>
2. 性能优化
" 禁用交换文件
set noswapfile
" 禁用备份文件
set nobackup
set nowritebackup
" 减少更新延迟
set updatetime=300
3. 外观优化
" 启用真彩色
set termguicolors
" 设置配色方案
colorscheme desert
" 高亮当前行
set cursorline
" 显示相对行号
set relativenumber
学习资源
1. 内置帮助
:help # 查看帮助
:help usr # 用户手册
:help quickref # 快速参考
2. 在线资源
3. 练习工具
- Vim Adventures:游戏化学习
- Open Vim:交互式教程
- Vim Genius:记忆卡片
掌握这些 Vim 技巧可以显著提高编辑效率。建议每天学习一两个新技巧,逐步积累经验。