2014-01-08 21 views
2

我最近寫了很多RST,我希望%按鍵能夠匹配重音(即反引號)字符。由於github markdown會阻止我在以下示例中使用反引號,因此在下面的示例中,假設"字符反引號。使用matchit匹配反引號---可能嗎?

"The cursor is at the |vertical line" 

,然後打%光標移動,如圖

"The cursor is at the vertical line|" 

我已經嘗試設置b:match_wordsmatchit插件,但它不能幫助。

任何提示讚賞。

回答

4

原諒我讚揚我自己的號角,但我是匹配插件的專家。

雖然它旨在擴展內置的匹配功能,但matchit以幾種方式擴展它。首先,它允許你匹配正則表達式,而不僅僅是單個字符。您可以通過使用vim的啓動的字和結束字模式得到很好的效果:

:let b:match_words='`\<:\>`' 

這肯定也適用於你給一個行示例。同樣,你可能會認爲起始的`通常在它之前沒有非空白字符,而關閉的字符之後沒有非空白字符。 (如果太多否定,那麼「這是標記」通常會開始一個新行或跟隨空格或製表符;通常在行尾或空格或製表符後面)。然後,您可以使用

:let b:match_words='\S\@<!`:`\S\@!' 

matchit插件試圖辜負vim的設計目標,包括:help design-documented。標準的vim分佈包括matchit.vim(腳本)和matchit.txt$VIMRUNTIME/macros/。您可以閱讀那裏的文檔或按照:help matchit-install的說明進行操作,並通過:help瀏覽文檔。

:help b:match_words,它說,

Tips: Be careful that your initial pattern does not match your final pattern. 

這是因爲,當你在關鍵的一聲,劇本必須是能夠弄清楚它是否在啓動模式或終結模式。做出這個決定的唯一信息就是你在b:match_words中告訴它的信息。

+0

謝謝你在這個強大的插件上的所有工作! – reckoner

0

matchit插件的設計工作類似於內置的%命令,因此受到一些相同的限制。特別是,從:help 'matchpairs'

Only character pairs are allowed that are different, thus you cannot 
jump between two double quotes. 

因此,這個工作正常(但不是隻要你想):

:let b:match_words="`:'" 

但是,這並不工作:

:let b:match_words="`:`"