为什么ci`会跳入反引号但ci(不会跳进大括号?

时间:2017-01-25 05:45:59

标签: vim

假设我有一个这样的文本文件:

this is some test `more test` 
this is some test (more test)

如果我在第一行的开头并输入ci`,光标将跳转到反引号,替换里面的内容,让我编辑。

但是,如果我在第二行的开头,我输入ci(什么都不会发生。

这种行为的原因是什么?是否有可能改变它的设置?

1 个答案:

答案 0 :(得分:2)

关于vim 7.4的内部行为:

  • 对于块(){}[]<>

Vim向后搜索,然后从当前位置开始向前搜索以匹配开始和结束角色。

  • 报价""''``

Vim跨越光标所在的整行,直到找到引号。

以下是光标下没有quotechar的最后一种情况:

/* Search backward for a starting quote. */
    col_start = find_prev_quote(line, col_start, quotechar, curbuf->b_p_qe);
    if (line[col_start] != quotechar)
    {
        /* No quote before the cursor, look after the cursor. */
        col_start = find_next_quote(line, col_start, quotechar, NULL);
        if (col_start < 0)
        return FALSE;
    }

    /* Find close quote character. */
    col_end = find_next_quote(line, col_start + 1, quotechar,curbuf->b_p_qe);