我正在写一本书。我有一个很大的注释文件,带有感兴趣的超链接。我希望能够将光标移动到超链接上,执行命令,并插入网页文本以供阅读、剪切和修改。理想情况下,它只是可读的文本而不是完整的 HTML,但我会采取我能得到的(或者我能得到的,如果这是正确的 shell 函数)。
当然这样的东西已经放在一起了,但是搜索“vim insert text hyperlink”之类的不是很有帮助。你见过这个功能吗?
将光标移动到炒作链接,然后键入以下命令:
:exec 'r!wget -q -O- ' getline('.') ' | html2text'
它将在炒作链接之后附加炒作链接的内容。
要使此命令起作用,您需要 install html2text
。
祝你好运!
将鼠标光标放在超链接上,执行
:r
C-rC-aEnter
这将在下一行插入原始内容。预处理:
:r !links -dump
C-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。
如果您不想修改任何设置,请考虑创建一个函数来保存和恢复&iskeyword
or的值&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>