OSX 剪贴板在 Vim 中损坏

if *_*one 4 clipboard terminal vim macos

我有 OSX ML 和 Vim 7.3。当我尝试使用 OSX 剪贴板时......什么也没有发生。

"+yy例如,如果我这样做,则 osx 剪贴板中不会有任何内容。"*也不起作用,ex 命令也不起作用注册的 + 和 *。从 OSX 剪贴板粘贴到 Vim 也不起作用。

另外,:set clipboard=unnamed也不起作用(应该将未命名寄存器与 osx 剪贴板同步)。它在 iTerm 和系统终端中都不起作用。

我的 Linux 机器上没有任何问题。

编辑:我刚刚发现我的 Vim 没有用剪贴板编译:

jan@rmbp:~$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 20 2012 13:16:02)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent 
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs 
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path 
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv 
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent 
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape 
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse 
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype 
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn 
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs 
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
jan@rmbp:~$ 
Run Code Online (Sandbox Code Playgroud)

FDi*_*off 5

在 Mac OS X Mountain Lion 上,预安装的 vim 版本不包括剪贴板支持。

你可以通过这样做来检查这一点。

vim --version | grep clipboard
Run Code Online (Sandbox Code Playgroud)

您应该看到类似这样的行

-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-xterm_clipboard -xterm_save 
Run Code Online (Sandbox Code Playgroud)

-clipbaord意味着 vim 编译时不支持剪贴板。

最简单的解决方法是使用 MacPorts(或你最喜欢的包管理器)并通过它安装 vim

或者

安装 MacVim。MacVim 相当于 Mac 上的 gvim。它还附带一个名为 mvim 的脚本,该脚本有一个标志,允许您使用 MacVim 附带的命令行 vim。命令是mvim -v

然后你可以别名mvim -vvim. (你可以把它放在你的.bashrc中)

alias vim='mvim -v'
Run Code Online (Sandbox Code Playgroud)

  • 我依赖终端vim,所以我通过brew安装它,并使用剪贴板编译它。谢谢。 (2认同)