commit 786aa470e36895107376e2f03326225b636be58b
parent 50c95f1beffa3d80a0e636a28c23dd51a6bd7803
Author: EinfachToll <istjanichtzufassen@googlemail.com>
Date: Tue, 26 Jun 2018 21:38:55 +0200
Remove the user-mappable function and use commands instead.
Diffstat:
3 files changed, 24 insertions(+), 39 deletions(-)
diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim
@@ -1101,8 +1101,10 @@ function! vimwiki#base#find_prev_link()
endfunction
-" This is an API function, that is, remappable by the user. Don't change the signature.
-function! vimwiki#base#follow_link(split, reuse, move_cursor, ...)
+function! vimwiki#base#follow_link(split, ...)
+ let reuse_other_split_window = a:0 >= 1 ? a:1 : 0
+ let move_cursor_to_new_window = a:0 >= 2 ? a:2 : 1
+
" Parse link at cursor and pass to VimwikiLinkHandler, or failing that, the
" default open_link handler
@@ -1138,7 +1140,7 @@ function! vimwiki#base#follow_link(split, reuse, move_cursor, ...)
" if we want to and can reuse a split window, jump to that window and open
" the new file there
- if (a:split ==# 'hsplit' || a:split ==# 'vsplit') && a:reuse
+ if (a:split ==# 'hsplit' || a:split ==# 'vsplit') && reuse_other_split_window
let previous_window_nr = winnr('#')
if previous_window_nr > 0 && previous_window_nr != winnr()
execute previous_window_nr . 'wincmd w'
@@ -1162,7 +1164,7 @@ function! vimwiki#base#follow_link(split, reuse, move_cursor, ...)
call vimwiki#base#open_link(cmd, lnk)
- if !a:move_cursor
+ if !move_cursor_to_new_window
if (a:split ==# 'hsplit' || a:split ==# 'vsplit')
execute 'wincmd p'
elseif a:split ==# 'tab'
@@ -1171,8 +1173,8 @@ function! vimwiki#base#follow_link(split, reuse, move_cursor, ...)
endif
else
- if a:0 > 0
- execute "normal! ".a:1
+ if a:0 >= 3
+ execute "normal! ".a:3
else
call vimwiki#base#normalize_link(0)
endif
diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt
@@ -677,12 +677,24 @@ Vimwiki file.
*:VimwikiGoBackLink*
Go back to the wiki page you came from.
-*:VimwikiSplitLink*
+*:VimwikiSplitLink* [reuse] [move_cursor]
Split and follow wiki link (create target wiki page if needed).
-*:VimwikiVSplitLink*
+ If the argument 'reuse' is given and nonzero, the link is opened in a
+ possibly existing split window instead of making a new split.
+
+ If 'move_cursor' is given and nonzero, the cursor moves to the window with
+ the opened link, otherwise, it stays in the window with the link.
+
+*:VimwikiVSplitLink* [reuse] [move_cursor]
Vertical split and follow wiki link (create target wiki page if needed).
+ If the argument 'reuse' is given and nonzero, the link is opened in a
+ possibly existing split window instead of making a new split.
+
+ If 'move_cursor' is given and nonzero, the cursor moves to the window with
+ the opened link, otherwise, it stays in the window with the link.
+
*:VimwikiTabnewLink*
Follow wiki link in a new tab (create target wiki page if needed).
@@ -829,35 +841,6 @@ Vimwiki file.
are specified, outputs all tags. To make this command work properly, make
sure the tags have been built (see |vimwiki-build-tags|).
-------------------------------------------------------------------------------
-4.3. Functions *vimwiki-functions*
-
-Functions to interact with Vimwiki. (It's intended that most commands will be
-replaced with corresponding function calls in the future.)
-Warning: this is currently unstable and likely to change.
-
-
-To map them to a key, use >
- nnoremap <C-K> :call vimwiki#base#function_name(arg1, arg2)<CR>
-<
-
- *vimwiki-follow_link*
-vimwiki#base#follow_link({split}, {reuse}, {move_cursor})
- Open the link under the cursor. {split} can have the following values:
- 'nosplit' open the link in the current window
- 'vsplit' open in a vertically split window
- 'hsplit' open in a horizontally split window
- 'tab' open in a new tab
-
- If {reuse} is 1 and {split} one of 'vsplit' or 'hsplit', open the link in
- a possibly existing split window instead of making a new split.
-
- If {move_cursor} is 1 the cursor moves to the window or tab with the
- opened link, otherwise, it stays in the window or tab with the link.
-
- For example, <CR> is per default mapped to
- vimwiki#base#follow_link('nosplit', 0, 1)
-
==============================================================================
5. Wiki syntax *vimwiki-syntax*
diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim
@@ -259,8 +259,8 @@ command! -buffer VimwikiDeleteLink call vimwiki#base#delete_link()
command! -buffer VimwikiRenameLink call vimwiki#base#rename_link()
command! -buffer VimwikiFollowLink call vimwiki#base#follow_link('nosplit', 0, 1)
command! -buffer VimwikiGoBackLink call vimwiki#base#go_back_link()
-command! -buffer VimwikiSplitLink call vimwiki#base#follow_link('hsplit', 0, 1)
-command! -buffer VimwikiVSplitLink call vimwiki#base#follow_link('vsplit', 0, 1)
+command! -buffer -nargs=* VimwikiSplitLink call vimwiki#base#follow_link('hsplit', <f-args>)
+command! -buffer -nargs=* VimwikiVSplitLink call vimwiki#base#follow_link('vsplit', <f-args>)
command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link(<f-args>)