2017-01-25 66 views
2

假設我有這樣一個文本文件:爲什麼ci`跳進反引號,但CI(不跳進括號

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

如果我在第一行的開頭,並鍵入ci`的光標會跳轉到反引號,裏面替換內容,讓我們我的編輯。

但是,如果我在第二行的開頭和I型CI(什麼都不會發生。

什麼是這種情況的原因行爲?有沒有可能改變它的設置?

+0

讀作:H motion.txt'。 –

+0

http://vi.stackexchange.com/questions/19/why-does-ci-and-ci-behave-differently –

+1

退房[welle/targets.vim](https://github.com/wellle/targets .vim) – DJMcMayhem

回答

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);