Answers:
要避免当前行上的任何匹配,您可以使用 :help /\%l
特殊原子匹配当前行号,然后断言不匹配通过 消极的向前看 :
exe printf('match lCursor /\V\%%%dl\@!\<%s\>/', line('.'), escape(expand('<cword>'), '/\'))
但在你的回答中你也表明了 现在的话 (不是整行)不应突出显示。这可以通过负前瞻再次实现,断言光标( \%#
)不在当前关键字内( \<\k*...\k*\>
) 和 ( \&
)也匹配当前的单词:
exe printf('match lCursor /\V\%%(\<\k\*\%%#\k\*\>\)\@!\&\<%s\>/', escape(expand('<cword>'), '/\'))