vim 中的非破坏性管道?

vim 中的非破坏性管道?

有没有办法通过 vim 中的外部命令管道传输选定的文本,但不使用输出替换选定的文本?有时我想将 vim 缓冲区中的某些内容复制到 X 剪贴板,因此我会使用类似%!xclip-- 的命令,但随后我必须“撤消”该命令才能取回文本,因为 xclip 不会返回任何内容。除了编写一个围绕 xclip 的包装器脚本并回显文本外,有没有更好的方法来做到这一点?

谢谢!

答案1

而不是%!xclip使用

%w !xclip

w注意和之间的空格!。参见

:help :w_c

答案2

为了复制到剪贴板,我使用

"*y

"*有关和之间的区别的更多信息"+,您可以查看:h x11-selection对我来说,以下内容似乎是相关的:

默认情况下,Xterm 始终将可见选择写入 PRIMARY 和 CUT_BUFFER0。粘贴时,如果可用,则使用 PRIMARY,否则将返回 CUT_BUFFER0。因此,在 Vim 和 xterm 之间剪切和粘贴时,应使用 "* 寄存器。Xterm 不使用 CLIPBOARD,因此 "+ 不适用于 xterm。

"*所以我会坚持"+使用佩思有提到,但您最好测试一下哪一个最适合您的使用模式。

相关内容