diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim index 0cce6cf..52fbe82 100644 --- a/autoload/vimwiki/base.vim +++ b/autoload/vimwiki/base.vim @@ -1670,8 +1670,17 @@ function! vimwiki#base#follow_link(split, ...) abort let cmd = ':badd ' elseif a:split ==# 'tab' let cmd = ':tabnew ' + elseif a:split ==# 'tabdrop' + " Use tab drop if we've already got the file open in an existing tab + let cmd = ':tab drop ' else + " Same as above - doing this by default reduces incidence of multiple + " tabs with the same file. We default to :e just in case :drop doesn't + " exist in the current build. let cmd = ':e ' + if exists(':drop') + let cmd = ':drop ' + endif endif " if we want to and can reuse a split window, jump to that window and open @@ -1684,7 +1693,6 @@ function! vimwiki#base#follow_link(split, ...) abort endif endif - if vimwiki#vars#get_wikilocal('syntax') ==# 'markdown' let processed_by_markdown_reflink = vimwiki#markdown_base#open_reflink(lnk) if processed_by_markdown_reflink diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt index d8307d8..7369593 100644 --- a/doc/vimwiki.txt +++ b/doc/vimwiki.txt @@ -370,8 +370,10 @@ MAP MODE , n Follow wiki link (create target wiki page if needed), opening in a new tab. May not work in some terminals. Remapping could help. - Maps to |:VimwikiTabnewLink|. - Remap command: `VimwikiTabnewLink` + Maps to |:VimwikiTabDropLink|. + Remap command: `VimwikiTabDropLink` + See |:VimwikiTabnewLink| for old behavior which + always opens a new tab. *vimwiki_* n Go back to previously visited wiki page. @@ -810,6 +812,11 @@ Vimwiki file. *:VimwikiTabnewLink* Follow wiki link in a new tab (create target wiki page if needed). +*:VimwikiTabDropLink* + Follow wiki link with tab drop, reusing any existing tabs with the page. + Creates a new tab if the page isn't already open (create target wiki page + if needed). + *:VimwikiNextLink* Find next link on the current page. @@ -3985,6 +3992,7 @@ http://code.google.com/p/vimwiki/issues/list. They may be accessible from https://github.com/vimwiki-backup/vimwiki/issues. New:~ + * Feature: #238: Reuse existing tabs with tab drop * Issue #621: Feature request: Highlight code listings in HTML * Issue #290: Calendar plugin, do not sign if no wiki * Issue #281: Permit `\|` in tables diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim index 04af334..31bc171 100644 --- a/ftplugin/vimwiki.vim +++ b/ftplugin/vimwiki.vim @@ -312,6 +312,8 @@ command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link( command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tab', 0, 1) +command! -buffer VimwikiTabDropLink call vimwiki#base#follow_link('tabdrop', 0, 1) + command! -buffer -nargs=? VimwikiGenerateLinks call vimwiki#base#generate_links(1, ) command! -buffer -nargs=0 VimwikiBacklinks call vimwiki#base#backlinks() @@ -418,6 +420,8 @@ vnoremap