Rem*_*man 17 regex vim alignment tabular
今天,我不得不在一条线上的第一个多个空格处对齐一张桌子.
PE
<ScrollWheelDown> move window three lines down
<S-ScrollWheelDown> move window one page down
<ScrollWheelUp> move window three lines up
<S-ScrollWheelUp> move window one page up
Run Code Online (Sandbox Code Playgroud)
我使用Tabular插件来对齐表格,但我找不到如何只查找多个空格的第一个出现并且仅在那里进行对齐的方法.
我在VIM中也不知道:如果我只想在一条线上找到第三次出现的模式,那将是什么样的正则表达式?正则表达式与使用Tabular相同吗?
Eel*_*vex 17
正则表达式将是:
/\(.\{-}\zsPATTERN\)\{3}
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果您想要在以下行中将第3个'foo'更改为'bar':
lorem ifoopsum foo lor foor ipsum foo dolor foo
^1 ^2 ^3 ^4 ^5
Run Code Online (Sandbox Code Playgroud)
跑:
s/\(.\{-}\zsfoo\)\{3}/bar/
Run Code Online (Sandbox Code Playgroud)
要得到:
lorem ifoopsum foo lor barr ipsum foo dolor foo
^1 ^2 ^3=bar ^4 ^5
Run Code Online (Sandbox Code Playgroud)
不知道是否符合你的需求,你可以这样搜索:
pattern Return它将光标放在下一个匹配行的第三次出现处(突出显示所有匹配行)
您还可以宏:
qa+3nq
然后@a转到下一行第三次出现