也许这对大家来说很明显,已经得到解决并众所周知,但我刚想到这个问题,求宽恕...
有没有一个 Vim 插件(用于编写 Markdown 文本),可以通过按下 Ctrl-L 的方式插入链接,类似于在这里 (StackOverflow) 的操作。或者类似的功能。
例如,我输入一个链接:http://www.google.com,按下 Ctrl-L,它会将该链接移到页面底部,并用 [描述][28] 替换它,其中 28 是当前标识符(与上次相比增加一)。
有人知道吗?是否有类似的工具?
也许这对大家来说很明显,已经得到解决并众所周知,但我刚想到这个问题,求宽恕...
有没有一个 Vim 插件(用于编写 Markdown 文本),可以通过按下 Ctrl-L 的方式插入链接,类似于在这里 (StackOverflow) 的操作。或者类似的功能。
例如,我输入一个链接:http://www.google.com,按下 Ctrl-L,它会将该链接移到页面底部,并用 [描述][28] 替换它,其中 28 是当前标识符(与上次相比增加一)。
有人知道吗?是否有类似的工具?
我使用自定义宏从系统剪贴板插入链接(在OS X和Windows上测试过Vim 7.3,也应该适用于Linux),并使用formd在需要时将生成的内联样式链接转换为引用样式。
这些宏在我的.vimrc
文件中:
" Create a Markdown-link structure for the current word or visual selection with
" leader 3. Paste in the URL later. Or use leader 4 to insert the current
" system clipboard as an URL.
nnoremap <Leader>3 ciw[<C-r>"]()<Esc>
vnoremap <Leader>3 c[<C-r>"]()<Esc>
nnoremap <Leader>4 ciw[<C-r>"](<Esc>"*pli)<Esc>
vnoremap <Leader>4 c[<C-r>"](<Esc>"*pli)<Esc>
使用这些命令调用位于~/bin/
文件夹中的formd
:
" Use formd to transfer markdown from inline to reference links and vice versa
" see: http://drbunsen.github.com/formd/
nmap <leader>fr :%! ~/bin/formd -r<CR>
nmap <leader>fi :%! ~/bin/formd -i<CR>
所以,我只需复制需要的链接,导航到单词(或使用视觉模式选择更多单词)并按下,4
将其转换为链接。如果我知道我要链接一个单词或选择,但还没有URL,我按下,3
,宏将插入所需的括号空白。
按下,fr
会产生引用样式。如有需要,,fi
可返回内联样式链接。
:help autocmd
可以用于列出可能的选项。
它可能不完全符合您的要求,但您可以根据自己的需求进行更改。
autocmd Filetype markdown,rmd noremap ,1 i[][]<Esc>bplla1<esc>m1Go[1]:<Space><esc>p'1f1wa<Space>
autocmd Filetype markdown,rmd noremap ,2 i[][]<Esc>bplla2<esc>m2Go[2]:<Space><esc>p'2f2wa<Space>
其中1
可能是第一个链接,2
是第二个链接...
将您的链接放入主要选择中。
在正常模式下定位光标并按下,1
开始。
.vimrc
条目,用于<leader>4
,这对我有用:nnoremap <leader>4 ciw[<C-r>"](<Esc>"*pa)<Esc><CR>vnoremap <leader>4 c[<C-r>"](<Esc>"*pa)<Esc><CR>
"*pil
的结果没有写入闭合的 )
,但是使用 "*pa
就可以了。