Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何将所选内容复制到OS X剪贴板_Macos_Vim_Clipboard - Fatal编程技术网

Macos 如何将所选内容复制到OS X剪贴板

Macos 如何将所选内容复制到OS X剪贴板,macos,vim,clipboard,Macos,Vim,Clipboard,我在Vim中选择了一个区域。如何将其复制到OSX剪贴板中 (可以通过管道将OS X剪贴板写入到/usr/bin/pbcopy)双引号星号(“*)在任何yank命令将结果拖动到复制缓冲区之前。这也适用于Windows和Linux。命令-C?这至少适用于从Terminal.app中启动的vim,用于使用鼠标选择的文本。根据我使用的vim版本,我可以使用+寄存器访问剪贴板 vmap <C-x> :!pbcopy<CR> vmap <C-c> :w !pbcopy

我在Vim中选择了一个区域。如何将其复制到OSX剪贴板中


(可以通过管道将OS X剪贴板写入到
/usr/bin/pbcopy

双引号星号(“*)在任何yank命令将结果拖动到复制缓冲区之前。这也适用于Windows和Linux。

命令-C?这至少适用于从Terminal.app中启动的vim,用于使用鼠标选择的文本。

根据我使用的vim版本,我可以使用
+
寄存器访问剪贴板

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 
“”可能有一些想法对您也适用。

您可以在Mac上使用,使用标准操作系统键轻松访问剪贴板


它还与普通Vim完全向后兼容,因此我甚至不需要单独的
。vimrc

如果启用剪贴板,您可以通过点击
“*y
将选定区域复制到剪贴板

要查看它是否已启用,请运行
vim--version
并查找
+剪贴板
-剪贴板
。例如,默认情况下,我的10.5.6设备上没有启用:

% which vim /usr/bin/vim % vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43) Included patches: 1-22 Compiled by _www@b77.apple.com Normal version without GUI. Features included (+) or not (-): ... -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ... 但是,即使在编译之后,我也无法在Terminal.app中运行vim时复制到剪贴板,只能在X11.app中运行。对于和Windows Gvim,只需将以下内容添加到您的
~/.vimrc

set clipboard=unnamed

现在,所有操作,如
yy
D
p
都可以使用剪贴板。无需在它们前面加上
“*
”+

对于Ubuntu用户,您要检索的用于使用剪贴板的包已满。其他软件包(vim tiny,vim)不包括剪贴板功能。

实现
+
*
缓冲区(如果它们本机不受支持)。

如果您使用MacPorts,您可以通过以下方式升级vim以包括剪贴板支持:

port install vim +x +x11

现在,您可以使用
“+
寄存器将文本直接拉到Mac剪贴板。效果非常好。

命令-c在MacVim和终端中都适用。

您可以直观地选择文本并键入
:w!pbcopy

或者您可以在
~/.vimrc
文件中包含以下键映射。它们以可视模式将文本剪切/复制到操作系统的剪贴板

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 
vmap:!pbcopy
vmap:w!pbcopy

来源:

目视选择文本并键入:

ggVG
!tee >(pbcopy)
我觉得这比:

ggVG
:w !pbcopy

因为它不会闪烁提示:“按ENTER键或键入command继续”

使用寄存器“+”或“*”复制到剪贴板不起作用

原因:您的特定版本的vim是在没有剪贴板支持的情况下编译的。在控制台上键入vim--verion,您将看到-xterm_剪贴板。使用gui软件包安装vim可以解决此问题。在ubuntu上,您可以通过在shell上键入:

sudo-apt-get-install-vim-gui-common

现在再次在控制台上执行vim--version。最有可能的是,您现在会看到+xterm_剪贴板


因此,现在您可以使用register+(比如“+yy”将当前行复制到剪贴板)

在macos 10.8上,vim是用
-clipboard
编译的,所以要使用
“*y
您需要 重新编译。幸运的是,
brew安装vim
将为您轻松编译一个新版本
在mac上,当任何其他操作都正常时,它将是
+剪贴板

用鼠标选择,右键单击选择复制。uff

如果您的Vim不是用剪贴板编译的,您希望复制所选文本而不是整行,您不想安装MacVim或其他GUI,最简单的解决方案是将这一行添加到您的.vimrc:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
set clipboard=unnamed
map y:e~/clipsongzboardP:w!pbcopy:bdelete!

要使用它,只需直观地选择要复制的文本,然后选择Control-C。如果您想对此行进行完整解释,请阅读““

我目前使用的是OS X 10.9,我用+xterm_剪贴板编译vim的努力没有给我带来任何好处。因此,我当前的解决方案是在我的~/.vimrc文件中使用选项
set clipboard=unnamed
。非常适合我。

我的主要问题是Vim的默认OSX版本。通过自制软件安装,将
+剪贴板
添加到构建中

您可以通过以下方式进行检查:

vim --version
要查看是否显示
-clipboard
+clipboard
请使用vim:
brew安装vim

Mac(从10.10.3 Yosemite开始)预装了一个系统vim,该系统不启用剪贴板
标志

您可以自己编译vim并启用该标志,也可以简单地使用正确设置的自制vim

要亲自了解这一点,请使用
/usr/bin/vim--version

您将看到如下内容:

$ /usr/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov  5 2014 21:00:28)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...
注意
-剪贴板

使用自制的vim,您将获得

$ /usr/local/bin/vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42)
MacOS X (unix) version
Included patches: 1-712
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
... +clipboard ...
注意我使用的
+剪贴板

map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
map:!pbcopy
vmap:w!pbcopy
它运行得非常好

如果您在MacOS X上:

$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
然后,将以下内容添加到.vimrc中:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
set clipboard=unnamed

现在,您只需在vim中执行
:%y
,即可将所有内容复制到剪贴板。

如果您在vim安装中有
+剪贴板
选项(您可以使用
:version
)并且您处于可视模式,则可以执行
“+y
这将把所选内容拉到剪贴板的缓冲区
+

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 
我已经将下面的映射添加到我的vimrc中,它工作得很好

vmap y”+y
:使用此功能,我可以执行
leader键
,然后执行
y
,以在视觉模式下复制到剪贴板

nmap“+p
:有了它,我可以在正常模式下从剪贴板粘贴
引线键
p


PD:在Ubuntu上,我必须安装vim gtk才能获得
+剪贴板
选项。

在我的情况下,我必须做:

:set mouse=v

我遇到同样的问题,在