当使用单引号时,Vim替换在命令行模式下不能正确发生[重复]。


我有一个文件test.txt,数据init=6’b000000;我想在bash文件中使用vim脚本将其替换为init=6’b110111;。我得到的错误是

我正在使用下面的命令。

vim -c '%s/init=6'b000000;/init=6'b110111;/g | write | quit' test.txt

在vim中可以完美运行,在bash中不行。

解决方案:

这与以下情况无关 Vim你不能将一个单引号嵌入到一对其他单引号中。shell在将命令行参数传递给调用的命令之前会对它们进行解析,它无法按照你定义的方式处理内部的单引号。

里面的单引号字面需要保留后再传给命令。所以使用双引号并转义内部的引号

vim -c "%s/init=6\'b000000;/init=6\'b110111;/g | write | quit" file

或使用单引号,但在里面加入一个多级双引号。

vim -c '%s/init=6'"\'"'b000000;/init=6'"\'"'b110111;/g | write | quit' file

给TA打赏
共{{data.count}}人
人已打赏
未分类

使用msys2构建pjsip 2.10。

2022-11-13 21:16:23

未分类

在Flutter中把列表传给另一个类

2022-11-8 8:48:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索