我正在考虑一个可能在 Vim 和其他编辑器中有用的特性 [将其命名为行依赖]。
什么是行依赖?
让S
当前缓冲区中的一组行号完全相同。S'
标记为依赖的(of )子集S
意味着对 in 中任何行的任何更改l
都会S'
反映在所有 中S'
。
S'
根据缓冲区中的更改进行更新,即可以追溯到行的初始点。
用例:自动复制多行中的更改而不记录宏。
在 Vim 中可以做到这一点吗?实施这个想法有什么固有的困难吗?这个想法有什么根本缺陷吗?
插件vim-multiple-cursors可以帮助同时编辑多个相同的文本部分。希望这是您正在寻找的。
在 Vimscript 中,您可以通过事件挂钩对“源”行的修改CursorMovedI
,但通过普通模式 (p) 和 Ex 命令 (:put) 对修改做出反应更难,可能CursorHold
需要延迟。
要在上面有插入/删除时跟踪行,可以使用标记,但只有 26 个。
可以通过 轻松“克隆”行更新setline()
。
一般来说,在 Vimscript 中执行此操作并不完美且难以实现。将此添加到核心 Vim 需要对 Vim 内部结构和源代码有深入的了解,并且不太可能被 Vim 的维护者接受。仔细想想这是否真的值得。