有没有办法通过 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。
"*
所以我会坚持"+
使用佩思有提到,但您最好测试一下哪一个最适合您的使用模式。