【发布时间】:2025-12-06 08:10:01
【问题描述】:
Vim 能否自动对所有打开的窗口应用更改/插入命令,例如 dd、O 和 u?我正在一个窗口中编写 LaTeX 文档,并希望使用第二个窗口来保存我的边注、TODO 等(类似于Cornell notes)。我的 Vim 标签看起来像
|1 \documentclass{article} |1
|2 \begin{document} |2
|3 Lorem ipsum dolor sit amet, |3 TODO: reword this.
| …consectetur adipisicing elit.|
|4 Ut enim ad minim veniam, quis |4 Could use some more examples.
| …nostrud exercitation ullamco.|
|5 |5 Put bibliography here.
|6 \end{document} |6
我需要保持wrap(最好是showbreak)切换,因为我的句子通常很长。
到目前为止,我已成功使用scrollbind 和cursorbind 并行导航这两个文件。但是,当我在一个文件中插入或删除行时,对齐会中断。例如,我可能会在左侧窗口中插入一行(使用o)来加载一个包,从而产生
|1 \documentclass{article} |1
|2 \usepackage{hyperref} |2
|3 \begin{document} |3 TODO: reword this.
|4 Lorem ipsum dolor sit amet, |4 Could use some more examples.
| …consectetur adipisicing elit.|
|5 Ut enim ad minim veniam, quis |5 Put bibliography here.
| …nostrud exercitation ullamco.|
|6 |6
|7 \end{document} |~
现在右侧窗口中的所有 cmets 都在错误的行上。如果我在左侧窗口中的编辑还在右侧窗口的第 1 行之后插入了新行,则对齐将被保留。我使用windo 命令取得了一些成功(例如windo normal dd 删除两个文件中的一行);我应该将dd 映射到window normal dd 并且对于我可能使用的每个命令都应该类似地映射吗?对于像o 这样让您处于插入模式的命令,这将如何工作?
为了使问题复杂化,理想情况下,我希望 any 操作创建或删除要在两个文件中复制的换行符。例如,插入模式下的回车应该被捕获并在另一个窗口中重复。
有没有更好的方法(我会坚持使用 Vim,但有兴趣了解其他具有此功能的编辑器),还是应该将我的 cmets 保留在文档文件中?
【问题讨论】:
-
不是答案,但这不是
%cmets 的用途吗?只需将右侧的行直接放在它们所属的文档中即可。如果需要,您仍然可以轻松地将它们剥离,:g/^\s*%/d。
标签: vim