Vim插件用于添加外部链接

5

也许这对大家来说很明显,已经得到解决并众所周知,但我刚想到这个问题,求宽恕...

有没有一个 Vim 插件(用于编写 Markdown 文本),可以通过按下 Ctrl-L 的方式插入链接,类似于在这里 (StackOverflow) 的操作。或者类似的功能。

例如,我输入一个链接:http://www.google.com,按下 Ctrl-L,它会将该链接移到页面底部,并用 [描述][28] 替换它,其中 28 是当前标识符(与上次相比增加一)。

有人知道吗?是否有类似的工具?


请在 vim_use 上提问,那里是专业人士聚集的地方。 - Lumi
5个回答

5

我使用自定义宏从系统剪贴板插入链接(在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可返回内联样式链接。


1

我没有完全匹配的解决方案,但我的vim-googurl插件可以完成部分工作。


0

: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开始。


0

虽然它不是你描述的确切工作流程,但this plugin似乎是为了更轻松地处理脚注而设计的。


0
关于Dennis Wegner的回答和他的.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 就可以了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接