From 9ee2d595523917ec1c00140afe57e1c0d2200272 Mon Sep 17 00:00:00 2001 From: codybuell Date: Fri, 27 Apr 2018 14:29:40 -0400 Subject: [PATCH] Add support for opening links in tabs and splits --- README.md | 8 ++++++++ doc/vim-markdown.txt | 13 +++++++++++++ ftplugin/markdown.vim | 17 ++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c056ce..e9966e8 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,14 @@ If you would like to use a file extension other than `.md` you may do so using t let g:vim_markdown_auto_extension_ext = 'txt' ``` +### Change how to open new files + +By default when following a link the target file will be opened in your current buffer. This behavior can change if you prefer using splits or tabs by using the `vim_markdown_edit_url_in` variable. Possible values are `tab`, `vsplit`, `hsplit`, `current` opening in a new tab, vertical split, horizontal split, and current buffer respectively. Defaults to current buffer if not set: + +```vim +let g:vim_markdown_edit_url_in = 'tab' +``` + ## Mappings The following work on normal and visual modes: diff --git a/doc/vim-markdown.txt b/doc/vim-markdown.txt index 714d3a9..9bc972c 100644 --- a/doc/vim-markdown.txt +++ b/doc/vim-markdown.txt @@ -319,6 +319,19 @@ the 'vim_markdown_auto_extension_ext' variable: > let g:vim_markdown_auto_extension_ext = 'txt' < +------------------------------------------------------------------------------- + *vim-markdown-edit-url-in* +Change how to open new files ~ + +By default when following a link the target file will be opened in your +current buffer. This behavior can change if you prefer using splits or tabs +by using the 'vim_markdown_edit_url_in' variable. Possible values are 'tab', +'vsplit', 'hsplit', 'current' opening in a new tab, vertical split, horizontal +split, and current buffer respectively. Defaults to current buffer if not +set: +> + let g:vim_markdown_edit_url_in = 'tab' +< =============================================================================== *vim-markdown-mappings* Mappings ~ diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim index 1aa3494..d9efd3c 100644 --- a/ftplugin/markdown.vim +++ b/ftplugin/markdown.vim @@ -609,7 +609,22 @@ if !exists('*s:EditUrlUnderCursor') endif endif let l:url = fnameescape(fnamemodify(expand('%:h').'/'.l:url.l:ext, ':.')) - execute 'edit' l:url + " determine how to open the linked file (split, tab, etc) + if exists('g:vim_markdown_edit_url_in') + if g:vim_markdown_edit_url_in == 'tab' + let l:editmethod = 'tabnew' + elseif g:vim_markdown_edit_url_in == 'vsplit' + let l:editmethod = 'vsp' + elseif g:vim_markdown_edit_url_in == 'hsplit' + let l:editmethod = 'sp' + else + let l:editmethod = 'edit' + endif + else + " default to current buffer + let l:editmethod = 'edit' + endif + execute l:editmethod l:url endif if l:anchor != '' silent! execute '/'.l:anchor -- 2.39.2