VimScript:生成语法高亮。使feedkeys()保持沉默

时间:2015-10-30 10:37:47

标签: vim vim-syntax-highlighting

我在VimScript中编写了一个函数,根据一些计算,我希望为文本文件的不同部分设置多个语法区域。 在下面的示例中,我从第5行,第108行到第8行,第10列

进行了突出显示
:syntax region Red start="\%108c\%5l" end="\%10c\%8l"

我使用的VimScipt代码如下所示:

call feedkeys(':syntax region Red start="\%' . col0 . 'c\%' . lin0 . 'l" end="\%' . col1 . 'c\%' . lin1 . 'l"' . "\<cr>")

这可以按预期工作,但会生成很多输出,因为feedkeys会回应它的作用。这种回声使我的代码非常变慢。

我的问题:

有没有办法让feedkeys()无声,或者可以在没有feedkeys()的情况下完成?

1 个答案:

答案 0 :(得分:1)

为什么首先使用feedkeys()?该功能仅用于模拟此处不需要的按键操作。

您必须使用:execute执行从多个表达式拼凑的命令:

execute 'syntax region Red start="\%'.col0.'c\%'.lin0.'l" end="\%'.col1.'c\%'.lin1.'l"'

注意:移除间距以使整个命令适合而不滚动。