Vim 中替换字符或文本

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

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

1. 基本替换

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

2. 正则表达式替换

命令 说明
:%s/^foo/bar/g 替换所有 行首foobar
:%s/foo$/bar/g 替换所有 行尾foobar
:%s/\<foo\>/bar/g 替换 完整单词 foobar(不匹配 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
  • 替换全文 worldEarth

    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 的替换功能非常强大,结合正则表达式可以高效处理复杂文本!

相关推荐
lcreek18 小时前
Linux信号机制详解:阻塞信号集与未决信号集
linux·操作系统·系统编程
shandianchengzi18 小时前
【记录】Tailscale|部署 Tailscale 到 linux 主机或 Docker 上
linux·运维·docker·tailscale
John Song19 小时前
Linux机器怎么查看进程内存占用情况
linux·运维·chrome
sichuanwuyi19 小时前
Wydevops工具的价值分析
linux·微服务·架构·kubernetes·jenkins
持戒波罗蜜20 小时前
ubuntu20解决intel wifi 驱动问题
linux·驱动开发·嵌入式硬件·ubuntu
不做无法实现的梦~20 小时前
使用ros2来跑通mid360的驱动包
linux·嵌入式硬件·机器人·自动驾驶
点云SLAM20 小时前
C++内存泄漏检测之Windows 专用工具(CRT Debug、Dr.Memory)和Linux 专业工具(ASan 、heaptrack)
linux·c++·windows·asan·dr.memory·c++内存泄漏检测·c++内存管理
LuiChun20 小时前
Docker Compose 容器服务查询与文件查看操作指南(Windows Docker Desktop 版)【一】
linux·运维·windows·docker·容器
${王小剑}20 小时前
在离线ubuntu上布置深度学习环境
linux·运维·ubuntu
Java程序之猿21 小时前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器