Vim 进阶教程

2025-07-25  本文已影响0人  青枫教学

文本替换 (:s)

这是 Vim 中最强大和最常用的进阶功能之一。

基本语法: :[range]s/old/new/[flags]

常见示例:

重要提示:

批量操作/多文件操作

多行编辑(可视化块模式)

结合 Ctrl + v(垂直选中)实现批量添加 / 删除前缀 / 后缀:

argdo / bufdo / windo / tabdo:

:vimgrep / :grep:

宏录制 (q):

其他高级技巧

重复操作(.命令)

. 可以重复上一次的编辑操作,是 Vim 最被低估的技巧之一:

快速跳转与定位

global 命令 (:g):

全局反向操作(:vglobal)

寄存器 (") 的高级使用:

寄存器 含义
" 默认寄存器,存放最近一次的删除或复制
0 存放最近一次的复制(y 命令)
1–9 最近 9 次删除操作 (滚动存放)
a–z 用户自定义寄存器,可用 "ayy 复制到 a
/: 存放最近一次的搜索模式

折叠代码

(需先设置折叠方式:set foldmethod=indent 按缩进折叠,或 set foldmethod=syntax 按语法折叠)

显示不可见字符

查看空格、制表符、换行符等:

:set list  " 显示不可见字符($表示换行,^I表示制表符)
:set nolist  " 关闭显示

标记 (Marks):

` + <letter>

(反引号,例如 `a 精确跳转到标记 a 的行和列) 或

' + <letter>

(单引号,例如 'a 跳转到标记 a 所在行的行首)。

会话管理 (Sessions)

:mksession ~/session.vim
vim -S ~/session.vim

外部命令与管道

:r !ls -l
:'<,'>!sort

将选区内内容按 sort 排序。

自动命令 (autocmd):

" 当打开或新建 .py 文件时设置缩进
autocmd BufNewFile,BufRead *.py setlocal tabstop=4 shiftwidth=4 expandtab
" 保存 .py 文件前自动删除行尾空白
autocmd BufWritePre *.py :%s/\s\+$//e

窗口和标签页管理:

命令行窗口 (q:):

高级配置技巧(需修改.vimrc)

高效搜索

文件管理

备份与撤销

代码格式化

插件推荐(进阶工具)

其他示例

将项目中的 user_id 改为 user_id_new:

:%s/\<user_id\>/user_id_new/gc
:argdo %s/\<user_id\>/user_id_new/ge | update

关键点:

上一篇 下一篇

猜你喜欢

热点阅读