从vim复制文本到Windows

27

我想将vim中的一段文本复制到其他窗口应用程序中,例如Firefox或Notepad。然而,使用y命令似乎无法完成此操作。我已启用Windows快捷键,因此按下ctrl-c即可实现这一点,但希望完全摆脱在vim中使用这些Windows命令。

这是否可能?反之,从Windows复制并粘贴到vim中呢?

7个回答

31
我有
set clipboard=unnamed

在我的 ~/.vimrc 文件中添加以下内容。然后 "yy", "D" 等命令会直接复制到 Windows 剪贴板中,这对于 MacVim 也同样有效。对于 Linux gvim,你需要记得在执行这些操作之前加上前缀 "+。


20

在GVim中使用Windows命令键不会造成任何伤害。或者,您还可以使用热键"+y进行复制和"+p进行粘贴到系统剪贴板以及从系统剪贴板粘贴。这适用于大多数平台(未直接连接到unix X服务器的Vim实例有点更难)。


1
我认为应该是这样写的:“*”(选择缓冲区时引用,选择系统剪贴板时使用星号),我错了吗? - falstro
你错了 - 在gvim帮助中搜索“cliboard” - anon
抱歉,请忽略那个 - 我猜答案是你可以两者都使用! - anon
1
@konrad 如果你在和我说话,我实际上已经给了你点赞。我的评论是针对 @roe 的。天啊,我希望这些评论能够成为线程式的! - anon
有人能解释一下如何输入这个命令吗?我尝试了不同的组合,但它显示为“未设置标记”。 - Thomas Sebastian
@ThomasSebastian 这是双引号而不是单引号。在键入第一个字符时,您需要按住Shift键(至少在标准的美式键盘上),+也是如此。 - Dan Bechard

9
根据以上回答:
"*y
"*p

使用 Ctrl-v 将使插入模式下输入控制字符变得困难,而在正常模式下,Ctrl-v 是可视块功能,虽然 Ctrl-q 也是。个人认为以下方法很自然并且对小指友好。
vmap <a-c> "*y 
imap <a-p> "*p

8

不要使用Windows绑定,否则在其他平台上使用Vim时可能无法达到最佳效果。

使用"*y - 复制到系统剪贴板。它在Mac Os、Windows和Linux上都能很好地工作。


“*y?” 的意思是“引用-星号-Y”? - innaM
我不同意你不使用Windows绑定的理由。除了文本编辑器不是操作系统(除了那些Emacs用户之外),而且UI习惯从一个操作系统到另一个操作系统也会发生变化,Command+C在我所知道的所有系统中实际上都是相同的(即使是OS X...)。 - Konrad Rudolph
(续)...使用“自己的”命令键(在所有应用程序中通用!),而Windows和Linux GUI使用控制键)。 - Konrad Rudolph
1
@Konrad:为什么我们要让生活变得更加复杂,去适应不同操作系统之间的不同按键绑定,如果Vim已经给了我们所有需要的东西。 - Mykola Golubyev

3

如果您想从窗口(或vim)复制,请尝试:

:set paste

但是要小心其他选项可能会被修改。所有细节都详细说明在:

:help paste

希望这能帮到你。

2

对于 Windows 7,您需要编辑位于以下位置的vim配置文件:

C:\users\<User>\vimfiles\vimrc

只需将以下行添加到配置文件中:

set clipboard=unnamed

0

保存文件,然后在另一个使用标准 Windows 约定的编辑器中打开它,最后像平常一样复制和粘贴。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接