vim-markdownfootnotes
vim-markdownfootnotes copied to clipboard
Feature Request: Edit existing footnote in split screen
I find the editing in split screen functionality very useful, but vim-markdownfootnotes currently only supports creating new footnotes. It would be convenient to also be able to edit existing footnotes.
I use the following Vimscript to crudely implement this:
function! markdownfootnotes#VimEditFootnote()
" Define search pattern for footnote definitions
let l:footnotepattern = '\[\^\p\+\]'
let l:flags = 'cW'
" Find the next footnote and align it for return
let [l:footnoteline, l:footnotepos] = searchpos(l:footnotepattern, l:flags)
normal h
" Get the next footnote in a variable
let l:text = getline(l:footnoteline)
let l:footnotenumber = matchstr(l:text, l:footnotepattern)
" Do the split
:below 4split
" Move to the correct footnote and align at the start
let l:temp = search('\V' . l:footnotenumber . ': ', 'W')
normal f:2l
endfunction
This is literally the first thing I've ever written in Vimscript, so I'm not submitting it as a pull request or anything at this stage. But this or similar functionality would be great to have in the plugin itself, and you're welcome to use this code as a start if it's helpful. It obviously currently doesn't have any error correction if we are at the end of the document.
I agree with dmoerner, this would be a very helpful feature, a "delete" function that deletes the matching reference, or footnote, and renumbers could be very useful too imho.
@lyndhurst I have a little fork of this plugin, which implements editing existing footnotes, and also changes the behavior of adding footnotes to automatically insert the lowest footnote number possible: https://github.com/dmoerner/vim-markdownfootnotes
There's also a fork of my fork, which cleans up some of my code and has a few small changes: https://github.com/abstractednoah/vim-markdownfootnotes