2015-06-26 4 views
1

Я бы хотел, чтобы vimwiki открывал .tex-файлы в vim (так же, как открывать файлы wiki в vim).Обработка ссылок на файл vimwiki

Я запускаю cygwin, и мне, наконец, удалось сделать vmwiki открытыми ссылками так, как это должно быть, заменив «xdg-open» на «cygstart» в функции vim # wiki # base # system_open_link, и теперь PDF-файлы открываются в средстве просмотра PDF, открываются URL-адреса в браузере и т. д., что отлично. Но когда cygstart применяется к файлам .tex, он открывает копию gvim в Windows в другом окне.

Есть ли способ настроить vimwiki, чтобы не использовать cygstart, когда локальный файл имеет расширение .tex, а обрабатывает его точно так же, как обрабатывает файлы .wiki?

ответ

2

Я нашел ответ в файле справки vimwiki. Существует пример функции VimWikiLinkHandler, которая открывает vlocal файлов в vim. Я просто скопировал эту функцию в плагин/vimwiki.vim:

function! VimwikiLinkHandler(link) "{{{ Use Vim to open links with the 
    " 'vlocal:' or 'vfile:' schemes. E.g.: 
    " 1) [[vfile:///~/Code/PythonProject/abc123.py]], and 
    " 2) [[vlocal:./|Wiki Home]] 
    let link = a:link 
    if link =~ "vlocal:" || link =~ "vfile:" 
    let link = link[1:] 
    else 
    return 0 
    endif 
    let [idx, scheme, path, subdir, lnk, ext, url] = 
     \ vimwiki#base#resolve_scheme(link, 0) 
    if g:vimwiki_debug 
    echom 'LinkHandler: idx='.idx.', scheme=[v]'.scheme.', path='.path. 
     \ ', subdir='.subdir.', lnk='.lnk.', ext='.ext.', url='.url 
    endif 
    if url == '' 
    echom 'Vimwiki Error: Unable to resolve link!' 
    return 0 
    else 
    call vimwiki#base#edit_file('tabnew', url, [], 0) 
    return 1 
    endif 
endfunction " }}}