1

我正在制作一个 vim 脚本来做笔记,它应该是标签感知的。因此,当我添加注释时,它应该出现在所有正确的部分下,如下所示:

例子

为了避免制作相同文本块的大量副本并不断扫描缓冲区以查找更改,我希望每个笔记只有一个文本文件并在正确的部分中打开它们。在这种情况下,它将在“猫事实”和“解剖”部分下打开 ~/notes/BFC49jl8.txt。

然后,当我进行更改时,一切都应该像编辑任何普通文件一样更新,所以如果我删除一个句子,它会更新如下:

示例2

如何在 1 个缓冲区中打开不同的文件?(或者有更好的方法吗?)使用 python 或 ruby​​ 很好。

更新:我继续并在 vimscript 中没有任何数据结构的情况下实现了这一点。稍后我将使用 python 对其进行优化:) 现在它只有非常基本的功能,但它满足了我的需求。Github 链接更新

4

2 回答 2

1

您所要求的绝对是不可能的,因为缓冲区是文件的内存表示。一个缓冲区中不能有多个文件。

在当前缓冲区中插入另一个文件的内容很容易,:r但是一旦操作完成,就不会保留插入文本的来源,因此无法进行同步。

如果您需要该功能,则必须自己编写代码并找到一种方法来跟踪和同步该“主”缓冲区和较小文件/缓冲区中的更改,本质上是在此过程中设计您自己的数据结构。这对我来说听起来并不是微不足道的。可能不是我们可以在快速回答中为您写的东西。

是否有特定原因为什么您不简单地将单个文件/缓冲区用于所有内容,例如在 org 模式或某些大纲中?而且,你在问之前做过一些研究吗?

于 2013-05-04T19:32:24.563 回答
1

您可能会使用 QFixHowm 获得成功,它是 Emacs 的howm工具的一个端口。不幸的是,它上面的大多数页面似乎都是日文的,但我可以理解它主页的谷歌翻译渲染版本。

于 2013-05-06T19:51:54.260 回答