follow_link: reuse existing tabs with tab drop (closes #238)
Replaces :e in `vimwiki#base#follow_link()` with :drop, making this the default behavior for pressing <CR> on a link. Checks for the existence of :drop first, since this isn't available in some builds. Adds a new :VimwikiTabDropLink and makes this a default for the keybindings formerly occupied by :VimwikiTabnewLink; leaving :VimwikiTabnewLink available for backwards compatibility and anyone who still wants the old behavior. Doesn't touch the split window reuse functionality, or the :VimwikiGoBackLink behavior, although I can see an argument for adding :drop to the latter. I've wanted this for a while and happened to notice @davidlmontgomery's patch from 2016 in #238. Code has moved around a little since, but I think this is correct.
This commit is contained in:
committed by
Brennen Bearnes
parent
3ac8e1ae14
commit
8e4202847f
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user