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

相关推荐
learning_tom2 小时前
HTML图片标签及路径详解
linux·服务器·php
dbdr09012 小时前
Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
linux·运维·服务器·网络·python·学习
大白的编程日记.3 小时前
【Linux学习笔记】信号的深入理解之软件条件产生信号
linux·笔记·学习
buyutang_3 小时前
C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
linux·c语言·c++·学习
云的牧人3 小时前
Ubuntu 22 redis集群搭建
linux·运维·ubuntu
siriuuus3 小时前
Linux 磁盘扩容及分区相关操作实践
linux·运维·服务器
To_再飞行3 小时前
K8s 存储配置资源
linux·云原生·容器·kubernetes
小猪写代码4 小时前
Ubuntu 文件权限管理
linux·ubuntu
虫无涯4 小时前
【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
前端·vue.js·编辑器
程序员的世界你不懂4 小时前
【Flask】测试平台中,记一次在vue2中集成编辑器组件tinymce
编辑器