]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Allow local anchors and improve buffer filename.
authormemeplex <carlosjosepita@gmail.com>
Sat, 25 Feb 2017 19:33:28 +0000 (16:33 -0300)
committermemeplex <carlosjosepita@gmail.com>
Sun, 26 Feb 2017 23:08:59 +0000 (20:08 -0300)
Now urls of the form #anchor works (by searching the -transformed-
anchor in the current buffer).

I've fixed the new buffer file naming code in two senses (and note that
both are unrelated to named anchors, but since the problem it's in the
same part of the code I decided to include the fix here):

1. The previous code only expanded the filename relative to the current
   file when vim_markdown_no_extensions_in_markdown was set, but
   concatenation of .md is unrelated to filename expansion.

2. The previous code was expanding relative to the home dir (:~) then
   making the path absolute (:p), which made not much sense and also
   produced long, absolute, buffer names. Now the full path is computed
   relative to the current file but the buffer is named relative to the
   current working directory (:.).

ftplugin/markdown.vim

index 35c8a63ac5dc62412611e40159df0013627d876d..d7c37774a49b54093e0314df73c75aa9ba7e2431 100644 (file)
@@ -581,13 +581,13 @@ endfunction
 if !exists('*s:EditUrlUnderCursor')
     function s:EditUrlUnderCursor()
         let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
 if !exists('*s:EditUrlUnderCursor')
     function s:EditUrlUnderCursor()
         let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
-        let l:anchor = ''
         if l:url != ''
             if get(g:, 'vim_markdown_autowrite', 0)
                 write
             endif
         if l:url != ''
             if get(g:, 'vim_markdown_autowrite', 0)
                 write
             endif
+            let l:anchor = ''
             if get(g:, 'vim_markdown_follow_anchor', 0)
             if get(g:, 'vim_markdown_follow_anchor', 0)
-                let l:parts = split(l:url, '#')
+                let l:parts = split(l:url, '#', 1)
                 if len(l:parts) == 2
                     let [l:url, l:anchor] = parts
                     let l:anchorexpr = get(g:, 'vim_markdown_anchorexpr', '')
                 if len(l:parts) == 2
                     let [l:url, l:anchor] = parts
                     let l:anchorexpr = get(g:, 'vim_markdown_anchorexpr', '')
@@ -598,10 +598,13 @@ if !exists('*s:EditUrlUnderCursor')
                     endif
                 endif
             endif
                     endif
                 endif
             endif
-            if get(g:, 'vim_markdown_no_extensions_in_markdown', 0)
-                let l:url = fnamemodify(expand('%:~'), ':p:h').'/'.l:url.'.md'
+            if l:url != ''
+                if get(g:, 'vim_markdown_no_extensions_in_markdown', 0)
+                    let l:url .= '.md'
+                endif
+                let l:url = fnamemodify(expand('%:h').'/'.l:url, ':.')
+                execute 'edit' l:url
             endif
             endif
-            execute 'edit' l:url
             if l:anchor != ''
                 silent! execute '/'.l:anchor
             endif
             if l:anchor != ''
                 silent! execute '/'.l:anchor
             endif