分类
LaTeX

latex-suite正向/反向搜索

反向搜索

如果你希望双击SumatraPDF能够返回到vim编辑器, 请把如下代码加入到_vimrc(windows系统):

"反向搜索
let g:Tex_DefaultTargetFormat = 'pdf'
let g:Tex_MultipleCompileFormats='pdf, aux'
let g:Tex_ViewRule_pdf = 'SumatraPDF -reuse-instance -inverse-search "gvim -c \":RemoteOpen +\%l \%f\""'
let g:Tex_CompileRule_pdf = 'xelatex -synctex=1 -src-specials -interaction=nonstopmode $*'


请确保gvim在系统路径中, 方法:在命令行输入gvim并回车, 如果能打开即可.

正向搜索

暂时未找到修改vimrc实现的办法. 需要修改ftplugin/latex-suite/compiler.vim(346-348行, latex-suite版本:1.8.23, vim版本7.4)

if (has('win32') && (viewer =~? '^ *yap\( \|$\)'))
    let execString = 'silent! !start '. viewer.' -s '.line('.').expand('%').' '.mainfnameRoot

将其替换成:

if (has('win32') && (viewer =~? "^ *yap\( \|$\)" || viewer =~? "^sumatrapdf"))
    if viewer =~? "^sumatrapdf"
            let relativeFile=substitute(expand("%:p"), Tex_GetMainFileName(':p:h').'/', '','')
            let execString = 'silent! !start SumatraPDF -reuse-instance "'.mainfnameFull.'.'.s:target.'" -forward-search "'.relativeFile.'" '. line('.')
    else
            let execString = 'silent! !start '. viewer.' -s '.line('.').expand('%').' '.mainfnameRoot
    endif

保存, 退出.

在tex文件编辑时, 可以用\lv打开pdf, \ls搜索当前编辑位置.

注意, 新版vim和latex-suite中正向搜索已经不需要网传的那个补丁了.

我参考了这里的博客.

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据