如何让vim找到忽略空格?

时间:2013-11-18 17:25:20

标签: vim

我有时会跨越两行或多行的XML条目,所以我可以寻找这样的东西:

something on one line

但是如果我尝试使用vim命令/something on one line并且该行是这样的:

something on one 
line

然后它找不到它,因为第二个文本块实际上被视为

something on one^J           line

这可能与我正在使用DOS格式的文件有关。

如何让vim搜索忽略空格和换行符?

3 个答案:

答案 0 :(得分:6)

在vim搜索中,_s表示新行,空格或制表符。所以你可以尝试一下如下:

/something on one\_s*line

匹配您用作示例的示例字符串。

答案 1 :(得分:1)

手动用替换\_s\+空格非常麻烦。 Vim Tips Wiki上的Search for visually selected text主题有一个映射,可以为您执行当前的视觉选择。您可以像内置*映射一样使用它来搜索(忽略空格)当前选择。非常方便!

答案 2 :(得分:1)

虽然我喜欢现有的答案,但我一直在寻找一种方法来为我输入的每个搜索“自动”将空格替换为 var_dump($_GET);

幸运的是,如这篇 reddit 博文所述,这样的解决方案是可行的。我最终使用了以下命令:

\_s*

这样一来,每当您在搜索命令中输入空格(cnoremap <expr><space> '/?' =~ getcmdtype() ? '\_s*' : ' ' /)时,您输入的所有空格都会自动替换为 ?

事实上,我只希望 LaTeX 文件具有这种行为,因此我在 \_s* 中添加了以下内容:

.vimrc