我正在使用音乐符号软件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