2012-10-17 101 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文件。它看起來像作者期望你手動運行該腳本。