VimScript:生成语法高亮。使 feedkeys() 静音
VimScript: generated syntax highlights. Make feedkeys() silent
我在 VimScript 中编写了一个函数,根据一些计算,我想为文本文件的不同部分设置 many 语法区域。
在下面的示例中,我突出显示了从第 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() 也能做到?
为什么首先使用 feedkeys()
?该功能仅用于模拟此处不需要的按键。
您必须使用 :execute
来执行由多个表达式拼凑而成的命令:
execute 'syntax region Red start="\%'.col0.'c\%'.lin0.'l" end="\%'.col1.'c\%'.lin1.'l"'
注意:删除了间距以使整个命令适合而无需滚动。
我在 VimScript 中编写了一个函数,根据一些计算,我想为文本文件的不同部分设置 many 语法区域。 在下面的示例中,我突出显示了从第 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() 也能做到?
为什么首先使用 feedkeys()
?该功能仅用于模拟此处不需要的按键。
您必须使用 :execute
来执行由多个表达式拼凑而成的命令:
execute 'syntax region Red start="\%'.col0.'c\%'.lin0.'l" end="\%'.col1.'c\%'.lin1.'l"'
注意:删除了间距以使整个命令适合而无需滚动。