1

我正在写一本书。我有一个很大的注释文件,带有感兴趣的超链接。我希望能够将光标移动到超链接上,执行命令,并插入网页文本以供阅读、剪切和修改。理想情况下,它只是可读的文本而不是完整的 HTML,但我会采取我能得到的(或者我能得到的,如果这是正确的 shell 函数)。

当然这样的东西已经放在一起了,但是搜索“vim insert text hyperlink”之类的不是很有帮助。你见过这个功能吗?

4

2 回答 2

2

将光标移动到炒作链接,然后键入以下命令:

:exec 'r!wget -q -O- ' getline('.') ' | html2text'

它将在炒作链接之后附加炒作链接的内容。
要使此命令起作用,您需要 install html2text
祝你好运!

于 2012-05-08T21:00:29.640 回答
2

将鼠标光标放在超链接上,执行

:rC-rC-aEnter

这将在下一行插入原始内容。预处理:

:r !links -dumpC-rC-aEnter

当然,您可以将其映射到一个键:

:nnoremap <F6> :r !links -dump <C-r><C-a><CR>

各种注释:

如果您引用了网址,您可能会不高兴,C-rC-a因为引号将被包含在内。考虑做

:se iskeyword+=/,:,.

C-rC-w改为使用。或者,

:se isfname-="

允许您改为使用C-rC-f

如果您不想修改任何设置,请考虑创建一个函数来保存和恢复&iskeywordor的值&isfname。要拿出大枪,请为 URL 编写一个正则表达式并使用它:

func! ReadFromUrl()
    let url = substitute(getline('.'), '\c\v^.*((https?|ftp|file)://[a-z0-9.:/%+()]+).*$', '\1', '')
    exec 'r! links -dump "' . url . '"'
endf

command! ReadFromUrl call ReadFromUrl()
nnoremap! <F6> ReadFromUrl<CR>
于 2012-05-08T22:40:42.780 回答