Включить обратный поиск для документов dvi в macvim

#vim #vi #macvim #latex-suite

#vim #vi #macvim #latex-suite

Вопрос:

Я почти успешно перенес свои настройки vim из Linux (Ubuntu) на Mac. Что мне понравилось, так это latex-suite для vim с прямым поиском (нажмите кнопки компиляции, и сгенерированный файл dvi сразу переместится в эту позицию) и обратным поиском (нажмите CTR и левую кнопку мыши в файле dvi, и он переместится прямо в то место в коде файла tex, где вы нажали). В Linux это работает, но не в MacVim. Вот изображение сообщения об ошибке:

введите описание изображения здесь

Вот мои настройки .vimrc для пакета latex:

 " LateX SUITE HACKS
" =================
    " inverse | forward search (http://forum.ubuntuusers.de/topic/vim-vim-latexsuite-vim-gtk)
    " her are the forward search
        :let g:Tex_ViewRule_dvi = 'xdvi -editor "vim --servername xdvi --remote  %l %f" $* amp;'
        :let g:Tex_ViewRuleComplete_dvi = 'xdvi -editor "vim --servername xdiv --remote  %l %f" $* amp;'
    " settings for determining tex filetype
        :let g:tex_flavor = "latex"

        map ,lj :execute '!cd ' . expand(Tex_GetMainFileName(':p:h')) . ' amp;amp; xdvi -editor "vim --servername 'v:servername' --remote-wait  %l %f" -sourceposition ' . line(".") . substitute(expand('%:p'),expand(Tex_GetMainFileName(':p:h')).'/','','') . " " . expand(Tex_GetMainFileName(':p:r')) . ".dvi amp;" <CR><CR>

" default output of compiling (pressing ,lj) is dvi
:let g:Tex_DefaultTargetFormat="dvi"
  

Я получил эти настройки от http://vim.wikia.com/wiki/Vim_can_interact_with_xdvi
Я запускаю vim с псевдонимом, подобным:

 alias vi='/Applications/MacVim.app/Contents/MacOS/Vim -g'
alias vim='/Applications/MacVim.app/Contents/MacOS/Vim -g'
  

Должно быть, это как-то связано с xserver или, возможно, какой-то неправильный аргумент передается в настройках, упомянутых выше. Надеюсь, кто-нибудь сможет мне помочь.

Matthias

Ответ №1:

в вашем vimrc попробуйте изменить строки с vim --servername , чтобы использовать полный путь /Applications/MacVim.app/Contents/MacOS/Vim , вы могли бы поместить это в переменную

 let g:vimPath = "/Applications/MacVim.app/Contents/MacOS/Vim"
  

затем

    :let g:Tex_ViewRule_dvi = 'xdvi -editor "' . g:vimPath . ' --servername xdvi --remote  %l %f" $* amp;'
    :let g:Tex_ViewRuleComplete_dvi = 'xdvi -editor "' . g:vimPath . ' --servername xdiv --remote  %l %f" $* amp;'
" settings for determining tex filetype
    :let g:tex_flavor = "latex"

    map ,lj :execute '!cd ' . expand(Tex_GetMainFileName(':p:h')) . ' amp;amp; xdvi -editor "' . g:vimPath . ' --servername 'v:servername' --remote-wait  %l %f" -sourceposition ' . line(".") . substitute(expand('%:p'),expand(Tex_GetMainFileName(':p:h')).'/','','') . " " . expand(Tex_GetMainFileName(':p:r')) . ".dvi amp;" <CR><CR>
  

Пожалуйста, обратите внимание, что MacVim отличается от обычного gvim несколькими способами и не является стандартным клиентским приложением X, различия можно найти с помощью команды :help macvim . Однако переключатель servername по-прежнему поддерживается, поэтому вышесказанное должно помочь. Дайте мне знать, как у вас дела.

Комментарии:

1. Работает отлично, ты мой герой дня.