2013-05-04 104 views
1

我正在做一個vim腳本來做記錄,它應該是標記意識。 所以,當我添加註釋,應該所有正確的部分下出現這樣的:在1個vim緩衝區中編輯多個文件

example

爲了避免大量相同的文字塊的副本,以及不斷掃描更改緩衝,我想每個音符只有一個文本文件,並在正確的部分打開它們。在這種情況下,它會在「cat facts」和「anatomy」部分下打開〜/ notes/BFC49jl8.txt。

後來,當我做出改變一切都應該更新,就像編輯任何正常的文件,所以如果我刪除一個句子,將更新,如:

example2

如何在1個緩存器打開不同的文件嗎? (還是有更好的方法?)使用Python或紅寶石是好的。

更新:我繼續並在vimscript中實現了這個沒有任何數據結構。我會用Python後優化它:)現在它只有非常基本的功能,但它涵蓋了我的需求。 Github linkupdated

+0

酷!你應該把它作爲答案。 – romainl 2013-05-09 19:05:02

回答

1

你要求的是絕對不可能的,因爲緩衝區是文件在內存中的表示形式。一個緩衝區中不能有多個文件。

很容易在當前緩衝區中插入另一個文件的內容與:r,但是一旦操作完成,就不會保留插入文本原點的內存,因此不可能進行同步。

如果您需要該功能,您必須自己編寫代碼,並找到一種方法來跟蹤和同步「主」緩衝區和較小文件/緩衝區中的更改,從本質上設計您自己的流程中的數據結構。這對我來說聽起來並不簡單。而且可能不是我們可以爲你快速回答而寫的東西。

是否有一個特定的原因,你不會簡單地使用單個文件/緩衝區的一切,如在組織模式或一些大綱?而且,你在問之前做了一些研究嗎?

+0

哦,是的,我一直在想如何實現這個很長一段時間,並考慮使用語法部分,爲每個音符自動生成,如[this](http://stackoverflow.com/questions/3968592/in -vim知識燦我 - 混合 - 語法IDENT規則 - 的 - 既神社和JavaScript的功能於該-SAM)。 由於性能方面的原因,我不想使用1個緩衝區/文件,因爲掃描每個音符的10多個音符實例可能會對正則表達式造成嚴重的負擔。感謝org模式下的提示!我現在試着去了解vim如何在幕後進行緩衝。 – CornSmith 2013-05-04 19:37:35

+0

查看此文檔並閱讀文檔後,似乎無法以組織模式執行此操作。 – CornSmith 2013-05-09 19:02:30

1

您可能已經成功使用QFixHowm,這是Emacs的howm工具的一個端口。不幸的是,其中的大部分頁面似乎都是日文版本,但我可以理解Google翻譯版本的主頁。

+0

嘿,這實際上看起來像它確實是我問的!我會密切關注這一點並進行測試。 – CornSmith 2013-05-09 11:30:25