我正在使用音樂符號軟件lilypond
。它能夠將 編譯成自己的文本式記法標記語言,以各種格式,其中 其中png
文件。vim過濾器,管道通過多個命令
附帶lilypond
另一個命令是它的同伴 lilypond-book
,這將編譯包含<lilypond>
標籤, 任何文件,並把在那個地方的代碼片段像這樣的:
<p>
<a href="10/lily-9f8f7b5d.ly">
<img align="middle" border="0" src="10/lily-9f8f7b5d.png"
alt="[image of music]">
</a>
</p>
所以我的願望,作爲一個的VIM
巨大的風扇是使用它的過濾功能和 自動化這樣的工作,因此,例如,當我在文檔中這樣 之一:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>html-with-notation</title>
</head>
<body>
This is some text, before including lilypond notation file
And here is the melody:
<lilypondfile>andantino.ly</lilypondfile>/* <-- TAG THAT WILL BE RECOGNIZED BY LILYPOND-BOOK */
Enjoy!
</body>
</html>
..我想替換那個<lilypond>
標籤,其中生成的輸出 從lilypond-book
命令。但事情並非如此簡單,因爲lilypond-book
不會寫入stdout
,而是寫入名爲stdin.html
的文件。 (命名它的 像自動識別出輸入從正在添加有)
所以當運行此:
:.!lilypond-book -f html - 2>/dev/null
// (with errors redirected to `/dev/null` to prevent polluting my buffer with messages being output.)
我不回來沒有,這當然是意料之中的,因爲所有的的輸出已經到了一個文件。
我怎麼會現在讀回所有處理後stdin.html
文件是從lilypond-book
部分做 ,成當前行,我就在我的vim 緩衝區?當然,所有這一切都不需要手動執行:r stdin.html
。
而且作爲獎金,它會讀取stdin.html到緩衝區之前是可能的,過程它pandoc
將其轉換成首先markdown
,在情況下,當我在markdown
文件的工作?
我從來沒有想過這樣做的;)是否有可能在那之後追加正常模式下的命令,以正確地縮進新插入的代碼? – branquito 2014-09-19 22:30:36
在這一點上,我可能會爲整個過程寫一個vimscript函數 – ohlec 2014-09-19 22:56:12