从系统剪贴板粘贴样式文本

问题描述 投票:0回答:4

在 vim 中,人们如何从系统剪贴板粘贴样式文本而不是纯文本?

例如,从网络浏览器复制并粘贴到文字处理程序中通常会导致粘贴样式文本,包括基本格式(粗体)和链接。人们如何以相同的方式从浏览器进行复制,但将文本的原始 HTML 表示形式粘贴到 vim 中?

vim copy-paste
4个回答
8
投票

临时将

html
添加到
clipboard
选项应该会有所帮助:

set clipboard^=html
put +
set clipboard-=html
  html            When the clipboard contains HTML, use this when
                  pasting.  When putting text on the clipboard, mark it
                  as HTML.  This works to copy rendered HTML from
                  Firefox, paste it as raw HTML in Vim, select the HTML
                  in Vim and paste it in a rich edit box in Firefox.
                  You probably want to add this only temporarily,
                  possibly use BufEnter autocommands.
                  Only supported for GTK version 2 and later.
                  Only available with the |+multi_byte| feature.

0
投票

我不知道ZyX的答案在2012年应该做什么。但是在2024年

set clipboard^=html
抛出了E474错误。由于在搜索“vim/neovim 粘贴富文本剪贴板”时此页面显示为第一个谷歌结果,因此我将在这里留下我的解决方案。 我找不到任何 Neovim 的原生功能。所以这方面没有任何改变。但是如果你安装了
wl-clipboard
(包含
wl-copy
wl-paste
)或x11/xorg的类似物(如
xclip
),你可以将此lua片段作为回调绑定到
<leader>ht
<M-v>
,例如:

local handle = io.popen("wl-paste -t text/html", "r")
# "*a" - Returns all the contents
local result = handle:read("*a")
handle:close()

if result then
  vim.api.nvim_put({result}, "", true, true)
end

-1
投票

Vim 不支持富文本:它是一个文本编辑器,而不是文字处理器。


-2
投票

Vim 或多或少只编辑纯文本。无论如何,你所要求的都是不可能的。

如果你愿意,你可以查找 HTML 页面的源代码,并将其粘贴到 Vim 中,但这仍然是纯文本(取决于定义;我仍然将标记视为纯文本)。

© www.soinside.com 2019 - 2024. All rights reserved.