2012-10-17 104 views
3

这是参考了Paul Biggar写的accepted answer here运行用python编写的vim脚本?

考虑所有这些选项一段时间后,我用以下解决方案解决。

使用rubber-info从日志文件中获取错误和警告。上面的脚本将日志文件保存在t.log中。在VIM:

autocmd FileType tex set makeprg=rubber-info\ t.log 
autocmd FileType tex set errorformat=%f:%l:\ %m 

我想,以执行his github script “建[LaTeX文件]连续刷新PDF格式,因为它去。”鉴于他没有完全提供如何运行它的指示,我认为这是一个相当简单的过程。然而,我在vim方面很新,对编程/ github一般知之甚少,所以我真的不知道如何开始。

我搜索了高和低,并已取得零进展。我不确定代码是否应该用python编译,然后作为脚本或类似的东西运行。我感谢您的帮助!

编辑:根据评论的讨论,我已经成功地使脚本可执行。但我仍然不知道如何运行它..?

+0

你有什么尝试?假设你使脚本可执行,并考虑第48行读取“filename = sys.argv [1]”,一个简单的“/ path/to/texbuild文件名”就足够了 – moodywoody

+0

嗯,这很可能是问题;我不知道你刚刚说了什么! :)我是初学者,所以我不知道如何做两者中的任何一个(我认为让脚本可执行文件简单地意味着将它放在一些“正确的”文件夹中)并且“/ path/to/texbuild文件名“将某种类型的'autocmd'写入我的'vimrc'文件?) –

+0

如果你在Linux上,你可以使用”chmod u + x/path/to/texbuild“来执行脚本。然后,将目标文件(您在vim中编辑的文件)作为参数运行。 – moodywoody

回答

1

#!/usr/bin/env python 

在脚本状态的顶部,以及在体内不存在的import vim明确指出,它应该使用

chmod +x /path/to/texbuild # Needed only once 
/path/to/texbuild {script-args} 
壳(或从VIM)运行

。进一步研究表明,它希望有一个TEX文件作为其第一个也是唯一一个参数(这里提到sys.argv的唯一的地方是line 48),因此它很可能是你应该使用以下命令来运行它:

augroup AutorunTexbuild 
    autocmd! 
    autocmd FileType tex :if !exists('b:runtexbuild') | call system('/path/to/texbuild '.shellescape(@%)) | let b:runtexbuild=1 | endif 
    autocmd VimLeave * :call system('killall -TERM texbuild') 
augroup END 

。这假定你一次只在一个vim实例中编辑tex文件。它看起来像作者期望你手动运行该脚本。