我最近写了很多RST,我希望%
按键匹配严重重音(即反引号)字符。因为github markdown阻止我在下面使用反引号,所以在下面的例子中只假装"
字符是反引号。
"The cursor is at the |vertical line"
然后点击%
移动光标,如图所示
"The cursor is at the vertical line|"
我尝试为b:match_words
插件设置matchit
,但这没有帮助。
任何提示赞赏。
答案 0 :(得分:4)
请原谅我自己的号角,但我是matchit插件的专家。
虽然它旨在扩展内置匹配功能,但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
中所说的。
答案 1 :(得分: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="`:`"
答案 2 :(得分:0)
有关在普通散文或标记文件(例如matchit
)中如何将相同的定界符与rst
配对的一些建议,请参阅我的repository。