是否有一个autocmd或其他一些钩子来检测`wrap`或`textwidth`何时被切换/设置?

时间:2015-02-06 02:48:58

标签: vim

我有一个函数可以让我循环通过不同的包装状态,设置一堆选项(例如formatoptions,重新映射0$和其他线条移动等。 )取决于包裹是否已关闭(set nowrapset textwidth=0)软(set wrapset textwidth=0)或硬(set textwidth=78)。

如果通过函数设置 wrap-state,这一切都可以正常

如果不是(例如,如果第三方插件设置了包装状态),那么这些选项/映射不会被设置/重置。

如果有其他代码触发这些事件,我有办法处理这些事件吗?也就是说,每当更改wraptextwidth时,都会调用函数(或命令)来相应地调整键映射和选项?

[注意:为清晰起见而编辑]

1 个答案:

答案 0 :(得分:2)

没有OptionChanged左右的事件;您可以做的最好的事情是使用一组频繁触发的事件,例如: CursorHold,CursorHoldI,CursorMoved,CursorMovedI。如果存储选项的先前值并将其与当前值进行比较,则可以确定它是否已更改。