我想在每次修改行时运行一个函数,但好像没有专门的自动命令可用于此。我可以在CursorMoved上运行该功能,但这会减慢编辑速度。我还可以为所有主要编辑操作映射该函数,但由于我试图使每行独立于其他行,所以可能会变得非常混乱。如果没有解决方案,我可能每隔几秒钟进行一次diff以查看发生了什么更改,并在更改的行上运行该函数,但这又是一个混乱的解决方案。
有什么想法吗?
我想在每次修改行时运行一个函数,但好像没有专门的自动命令可用于此。我可以在CursorMoved上运行该功能,但这会减慢编辑速度。我还可以为所有主要编辑操作映射该函数,但由于我试图使每行独立于其他行,所以可能会变得非常混乱。如果没有解决方案,我可能每隔几秒钟进行一次diff以查看发生了什么更改,并在更改的行上运行该函数,但这又是一个混乱的解决方案。
有什么想法吗?
master-Foo.vim:
let b:Dom_slaves = ['/foo/bar/slave.cpp', '...', ...]
let b:Dom_map = {
\ 10 : "do your laundry",
\ 20 : "prepare your lunch"
\ }
slave.cpp
/* Dom_master = master-Foo.vim */
...
cout << "I will gladly /* Dom-id:10 */ and /* Dom-id:20 */.\n";
Dominate.vim
let MSMap = {}
autocmd BufWritePre * call s:Dominate()
function! s:Dominate()
" if current buffer's Dom_slaves and Dom_map defined
" read & update all slaves with Dom_map mappings
" else see if 'Dom_master = somefile' appears in the buffer
" update mapped values from cache or read master file, cache and update
" endif
endfunction
InsertLeave
事件吗?它应该比CursorMoved
更少的影响性能。 - Prince Goulash&modified
,但似乎没有适当的自动命令事件。 @IngoKarkat 可能是正确的。 - Nikita Kouevda