2016-09-28 156 views
1

正如大家所知,Vim是一个很棒的工具,可以用来做这种事情。我在一些报告文本中搜索错误。举例来说,我在输入命令“:s/0000”的文本中查找字符串“0000”。默认情况下,它会突出显示该序列的所有实例,我的意思是全部。好的部分是,我知道,例如,字符串从每行的第11个位置开始。 我想知道的是有一个命令,我可以全局搜索字符串“0”,只发生在每行的第11个位置? 我很感谢你的时间。谢谢。在VIM中有效地在特定行位置上搜索特定的字符串

+0

[Vim可能的重复 - 在一行的特定偏移处搜索带有(或不带)字符的行](http://stackoverflow.com/questions/12985042/vim-search-for-lines-带或不带字符的特定偏移量) – SibiCoder

回答

2

Vim有一些特殊的正则表达式原子。对于屏幕列,有\%v。因此,要搜索0000正好列11,你会使用

/\%11v0\{4} 

也有针对字节数和行数小于(\%<v)和大于,以及类似原子变种。请参阅:help /\%l及以下段落。

+0

这似乎工作得很好。我仍然试图用正则表达式更好,这绝对是一个帮助。你能告诉我在哪里我会去给你适当的信贷答案?我会马上这样做。 – Galidari

+0

@Galidari谢谢;请点击旁边的复选标记接受答案。就这样! –

0

这是一个简单的一个:你搜索的正则表达式:

  • ^(行首)
  • \ {10}:整整10任意字符
  • 0000:字符串应该开始11栏

这样你输入的内容是:

/^.\{10}0000

+0

这不是答案,但它做的确很有趣。它开始在该行的第一个字符处突出显示,然后在所讨论的实际字符串的末尾停止突出显示。我试了几次,它的工作方式似乎可以产生一些好的东西,我正在做的事情。这次真是万分感谢。 – Galidari