VS Code 如何进行多行查找?

发布于 2022-09-06 09:58:11 字数 601 浏览 20 评论 0

更新:现在已经原生支持多行查找了。


VS Code 的查找和替换框是单行的,如果粘贴有换行的内容进去,换行符会变成空格,就搜不到结果了。

用正则模式把换行写成字符串的"\n"可以匹配到,但如果字符串里有正则表达式的操作符,如| . 之类的就麻烦了,总不能把每种操作符都转义一遍吧,太麻烦了,而且还可能出错。

请问这个问题有解决办法吗?我根本搜不到相关资料啊,大家平时都不用查找多行文本的吗?

clipboard.png

ps:在github上看到了一个相关的issue,是去年5月份的,时至今日也没有添加这个功能的动静,看来指望不上了。

我觉得多行查找和替换是很有用的功能。此外上面的issue也提到了VS Code 缺少“搜索所有”的功能(search all,在项目文件夹或所有已打开的文件中搜索,并把搜索结果汇总出来)。这点真是太无奈了,当我需要用到这些功能时,只好用sublime text 来完成。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟酉 2022-09-13 09:58:11

今天有位开发者告诉我,他做的一个扩展可以实现这个功能,我试了一下很有用:

Multiline Find and Replace

它的一个功能就是把选中的文字拷贝为正则表达式,并且把所有的特殊符号进行了转义,使用起来很方便。

使用步骤:

1.选中你要查找的多行文字

2.ctrl+shift+p,输入“copy”执行这个命令:

图片描述

3.粘贴到查找框里使用就可以了(记得开启正则模式)。

图片描述

注意:

VS Code 查找时,如果不使用正则,会在项目中的所有文件里查找。但是使用正则时,只会搜索已打开的文件。这一点在使用的时候要注意。

附:开发者axlan 提交新功能的issue 页面

她如夕阳 2022-09-13 09:58:11

比较无奈,但是还是可以实现的,下面是一个例子,主要是利用\n的匹配,使用.*\n匹配跨行中间的多行,当然了,我这里的场景是不关心中间行的内容的,如果关心中间行的内容的话,正则会比较复杂

栗子:


# 替换以 from 'common';开头,以utils结尾的多行内容,并在utils后添加.default
正则:from\s\'common\';((\n.*)+)=\s(utils)
替换:from 'common';$1= $3.default;

如果错误,敬请指正

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文