是否可以直接从 Vim 复制到剪贴板? yy
仅将内容复制到 Vim 的内部缓冲区。我想复制到操作系统的剪贴板。 Vim 中是否有这样的命令,或者您只能在 Vim 中提取内容?
*
寄存器将执行此操作。在 Windows 中, +
和*
是等效的。 +
和*
之间有细微的差别:
在 Windows 下,* 和 + 寄存器是等效的。但是,对于 X11 系统,它们有所不同。对于 X11 系统,* 是选择项,而 + 是剪切缓冲区(如剪贴板)。 http://vim.wikia.com/wiki/Accessing_the_system_clipboard
*
可能是您大多数时候想要的,所以我使用*
因为它在两种环境下都能发挥预期的功能。
在 Linux 发行版中,您必须先安装vim-gtk
(aka gvim
)才能获得剪贴板功能。这是因为非 gtk vim 通常在没有 X11 支持的情况下进行编译。这是为了使其能够在仅控制台计算机(通常是服务器)上运行。
对于那些对于在拉动或放置时如何使用寄存器感到困惑的人,您只需要写"
然后是寄存器的名称。因此,要将某些内容复制到剪贴板寄存器中,请键入"*y
,然后键入"*p
(贷记:凯尔 · 马修斯(Kyle Mathews)
在 Mac OSX 上
复制选定的部分:直观地选择文本(在正常模式下v
或V
:w !pbcopy
复制整个文件:%w !pbcopy
从剪贴板粘贴:r !pbpaste
在大多数Linux 发行版上,您可以替代:
pbcopy
上面xclip -i -sel c
或xsel -i -b
pbpaste
使用xclip -o -sel -c
或xsel -o -b
xsel
和xclip
),则可能可以在存储库中找到它们在 vimrc 文件中,您可以指定自动使用系统剪贴板进行复制和粘贴。
在 Windows 上设置:
set clipboard=unnamed
在 Linux 上设置(vim 7.3.74+):
set clipboard=unnamedplus
注意:您可能需要使用 Vim 的最新版本才能使它们工作。