Vim 中替换字符或文本

在 Vim 中替换字符或文本可以使用 替换命令(substitute),其基本语法为:

复制代码
:[range]s/old/new/[flags]

1. 基本替换

命令 说明
:s/foo/bar/ 替换当前行的第一个 foo 为 bar
:s/foo/bar/g 替换当前行的 所有 foo 为 bar
:%s/foo/bar/g 替换 全文 的 foo 为 bar
:5,10s/foo/bar/g 替换第 5 行到第 10 行的 foo 为 bar

2. 正则表达式替换

命令 说明
:%s/^foo/bar/g 替换所有 行首 的 foo 为 bar
:%s/foo$/bar/g 替换所有 行尾 的 foo 为 bar
:%s/\<foo\>/bar/g 替换 完整单词 foo 为 bar(不匹配 foobar)
:%s/foo/bar/gc 替换时 逐个确认 (y 替换,n 跳过)

3. 特殊字符转义

如果替换内容包含 / 或特殊字符,可以用 \ 转义,或换分隔符(如 #):

vim 复制代码
:%s/http:\/\/example.com/https:\/\/new.site.com/g
:%s#http://example.com#https://new.site.com#g

4. 删除字符

命令 说明
:s/foo//g 删除当前行的所有 foo
:%s/\s\+$//g 删除全文行尾的 多余空格

5. 可视模式替换

  1. 按 Ctrl + V 进入块选择模式,选中多行。
  2. 输入 :s/foo/bar/g,Vim 会自动填充为 :'<,'>s/foo/bar/g,仅替换选中部分。

示例

text 复制代码
Hello world
world is great
world of vim
  • 替换全文 world 为 Earth:

    vim 复制代码
    :%s/world/Earth/g

    结果:

    text 复制代码
    Hello Earth
    Earth is great
    Earth of vim
  • 仅替换第 2 行的 world:

    vim 复制代码
    :2s/world/Earth/

总结

场景 命令
当前行替换 :s/old/new/
全文替换 :%s/old/new/g
带确认替换 :%s/old/new/gc
删除文本 :s/old//g
正则替换 :%s/\<word\>/new/g

Vim 的替换功能非常强大,结合正则表达式可以高效处理复杂文本!

相关推荐
Android系统攻城狮13 小时前
Linux FFmpeg深度解析之avcodec_parameters_from_context调用流程与实战(十六)
linux·运维·ffmpeg·音视频进阶·ffmpeg音视频·车载音视频进阶
思想觉悟13 小时前
SEAndroid实战
android·linux·c++
前进吧-程序员13 小时前
C++20 协程实战:手写 Task、单线程调度器与 awaiter 的三个钩子
linux
Android系统攻城狮13 小时前
Linux FFmpeg深度解析之avcodec_alloc_context3调用流程与实战(十四)
linux·运维·ffmpeg·车载音视频·音视频进阶·ffmpeg音视频进阶
自由彩虹14 小时前
靶场通关15--bossplayersctf
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮14 小时前
Linux 学习笔记(四十五):Web 安全基石——Cookie、Session 与 HTTPS 原理解析
linux·前端·网络·笔记·学习·tcp/ip·安全
Linux_cy14 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
椒颜皮皮虾྅15 小时前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda
我要见SA姐115 小时前
Chrome 内存泄漏诊断指南:从现象定位到根因排查
ide·vscode·python·自动化·编辑器
垆边人似月.15 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu