如何在VIM的下一场比赛后跳到?

时间:2011-03-29 19:39:24

标签: vim

我有一个我正在处理的文件,我需要进行大量编辑。我需要编辑之前的文本是不变的,但我需要编辑的内容各不相同。我现在正在做的是 /my_constant_textn跳转到我需要编辑的行。但是像这样使用n我仍然需要将光标向前移动到我匹配的文本之后才能到达我想要开始编辑的位置。在我看来,必须有一种方法让我的光标只是通过我匹配的文本,但我找不到运气。

如果它有助于我正在处理的文件看起来像以下两行重复多次只是使用不同的值。

INSERT INTO TABLE (ID, NAME, VALUE) VALUES ('1','foo','all sorts of random stuff')
INSERT INTO TABLE (ID, NAME, VALUE) VALUES ('2','bar','some other random stuff')

我希望能够在'foo','之后将光标跳到右边(即my_constant_text)。

3 个答案:

答案 0 :(得分:10)

使用/constant_text/e跳转到常量文本的末尾,或/constant_text/e+1跳转到它后面。

答案 1 :(得分:2)

事情可以更加通用http://vimdoc.sourceforge.net/htmldoc/pattern.html# {offset}

[...]  With "/" and "?" an
additional offset may be given.  There are two types of offsets: line offsets
and character offsets.  {the character offsets are not in Vi}

The offset gives the cursor position relative to the found match:
    [num]   [num] lines downwards, in column 1
    +[num]  [num] lines downwards, in column 1
    -[num]  [num] lines upwards, in column 1
    e[+num] [num] characters to the right of the end of the match
    e[-num] [num] characters to the left of the end of the match
    s[+num] [num] characters to the right of the start of the match
    s[-num] [num] characters to the left of the start of the match
    b[+num] [num] identical to s[+num] above (mnemonic: begin)
    b[-num] [num] identical to s[-num] above (mnemonic: begin)
    ;{pattern}  perform another search, see |//;|

答案 2 :(得分:0)

正如Jan所说,使用'/ e'修饰符。如果它比搜索字符串更复杂,那么总是有宏

qanf,q

在宏nf,中存储宏nf,(这将是您的复杂内容,而不仅仅是a),然后

@a

来称呼它。