在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: smint1986

[原创] makefile 相关,全路径+加嵌套

[复制链接]
 楼主| 发表于 5 天前 | 显示全部楼层
vi中的某个关键字匹配到某个关键字,包含多行
列PIN Q0
    DIRECTION OUTPUT ;
    USE CLOCK ;   ← 被替换为 USE SIGNAL ;
PIN Q5
    MODE INPUT ;
    USE SIGNAL ;   ← 被替换为 USE SIGNAL ; 这里的Q后面的数字会变化且只替换这个Q后面的USE  CLOCK到USE SIGNAL

:%s/\(PIN Q\d\_.\{-}USE\) CLOCK ;/\1 SIGNAL ;/g
解释:

Q\d:匹配 Q0 到 Q9(\d 表示任意数字)。

\_.\{-}:非贪婪匹配任意字符(包括换行),直到 USE。

\1:保留 PIN Qx ... USE 部分,仅替换 CLOCK 为 SIGNAL。


方法 3:使用 :g 全局命令(适用于多行范围)
如果 PIN Qx 和 USE CLOCK ; 之间可能有复杂内容,可以:

vim
:g/PIN Q[0-9]/,/USE CLOCK ;/s/USE CLOCK ;/USE SIGNAL ;/g
解释:

:g/PIN Q[0-9]/:查找所有 PIN Q0 到 PIN Q9 的行。

,/USE CLOCK ;/:从 PIN Qx 行开始,到 USE CLOCK ; 结束。

s/USE CLOCK ;/USE SIGNAL ;/g:替换匹配范围内的 USE CLOCK ;。

关键点总结
语法        作用
Q\d 或 Q[0-9]        匹配 Q0 到 Q9
\_.\{-}        非贪婪匹配任意字符(包括换行)
\1        引用第一个捕获组(保留匹配部分)
:g/start/,/end/cmd        从 start 到 end 执行 cmd


\d        匹配数字        D\d → D0, D1, D2
\_[^;]*        匹配任意字符(包括换行),直到 ;        PIN D0 ... ;
\1        引用第一个捕获组        \(PIN D\d\) → \1
:g/pattern/cmd        对所有匹配 pattern 的行执行 cmd        :g/PIN D\d/s/.../.../



您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-13 18:53 , Processed in 0.012442 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表