Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行用python编写的vim脚本?_Vim_Compiler Construction - Fatal编程技术网

运行用python编写的vim脚本?

运行用python编写的vim脚本?,vim,compiler-construction,Vim,Compiler Construction,这是指由以下人员编写的: 在考虑了一段时间所有这些选项后,我决定采用以下解决方案 在后台运行脚本以持续构建,同时刷新pdf。latexmk几乎已经足够好了,只是它构建到位,在okular(我的查看器)中在不好的时候重新加载。 该脚本可在上获得 使用rubber info从日志文件中获取错误和警告。上面的脚本将日志文件保存在t.log中。在vim中: autocmd FileType tex set makeprg=rubber-info\ t.log autocmd FileType

这是指由以下人员编写的:

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

  • 在后台运行脚本以持续构建,同时刷新pdf。latexmk几乎已经足够好了,只是它构建到位,在okular(我的查看器)中在不好的时候重新加载。 该脚本可在上获得
使用rubber info从日志文件中获取错误和警告。上面的脚本将日志文件保存在t.log中。在vim中:

 autocmd FileType tex set makeprg=rubber-info\ t.log
 autocmd FileType tex set errorformat=%f:%l:\ %m
我希望执行的目的是“不断构建[LaTeX文件],在运行过程中刷新pdf。”鉴于他没有给出如何运行它的具体说明,我认为这是一个相当简单的过程。然而,我对vim非常陌生,对编程/github的一般知识知之甚少,所以我真的不知道如何开始

我到处寻找,却毫无进展。我不确定代码是否应该用python编译,然后作为脚本运行,或者类似的东西。我感谢你的帮助

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

#!/usr/bin/env python
在脚本状态的顶部,以及主体中缺少
import vim
,清楚地表明应该使用

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

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文件。看来作者希望您手动运行该脚本。

您尝试了什么?假设脚本是可执行的,并且考虑到第48行的内容为“filename=sys.argv[1]”,那么简单的“/path/to/texbuild filename”可能就足够了,这很可能就是问题所在;我不知道你刚才说了什么!:)我是个初学者,所以我不知道如何执行这两个(我假设让脚本可执行仅仅意味着把它放在某个“正确”的文件夹中,而“/path/to/texbuild filename”将是某种类型的
autocmd
写入我的
vimrc
文件?)如果你在Linux上,你可以使用“chmod u+x/path/to/texbuild”。然后用目标文件(您在vim中编辑的文件)作为参数运行它。啊,在Windows 7中有没有等效的方法?编辑:无需担心,为这个问题提供了必要的说明。好吧,既然我已经使脚本可执行(按照上面的说明),我如何“运行[脚本]将目标文件作为参数“?是否有一些vim命令来执行此操作?
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