如何在VS Code中搜索回车符\r及包含CRLF换行结尾的文件?
问题解答
为什么VS Code中无法直接搜索到\r?
VS Code为了实现跨平台文本处理的一致性,内部文本模型统一使用\n作为唯一换行标记:当你打开一个CRLF结尾的文件时,程序会自动将所有\r\n转换为\n存储在内存中,原始的\r字符并没有被加载到编辑器的运行时文本里,所以直接在已打开文件的搜索框中搜索\r自然匹配不到结果。
而Visual Studio的文本模型会保留文件原始的换行符存储,因此可以直接搜索到\r。
如何在VS Code中搜索回车符\r?
分两种场景实现:
- 全局跨文件搜索:VS Code的全局搜索功能会直接读取磁盘上的原始文件内容,不会做换行符标准化处理,你可以按以下步骤操作:
- 按下
Ctrl+Shift+F打开全局搜索面板 - 点击搜索框右侧的
.*按钮开启正则表达式匹配模式 - 输入
\r执行搜索,即可匹配到所有磁盘上包含回车符的文件
- 按下
- 单个已打开文件校验:如果只是要确认当前文件是否包含
\r,无需搜索,直接查看编辑器底部状态栏即可,会明确标注当前文件的换行格式是LF还是CRLF;你也可以开启设置editor.renderControlCharacters,开启后如果文件有未被标准化的\r字符,会显示为^M可直接看到。如果只是要匹配当前文件的行尾位置,开启正则搜索后输入$即可匹配所有行的结尾,和换行格式无关。
如何搜索包含CRLF换行结尾的文件?
用VS Code全局搜索即可实现:
- 打开全局搜索面板,开启正则表达式模式
- 输入搜索内容
\r\n执行搜索
返回的所有结果文件都是使用CRLF作为换行结尾的文件,和底部状态栏识别的换行格式逻辑完全一致。
内容的提问来源于stack exchange,提问作者Tono Nam
相关产品推荐
相关产品推荐

