Vim& Mac:如何在没有pbcopy的情况下复制到剪贴板

时间:2013-11-25 07:33:26

标签: macos vim vi

我有一个带有剪贴板和xterm_clipboard支持的vim版本。但是,"*y"+y不会复制到系统剪贴板。我知道我可以使用:w !pbcopy(甚至为它创建一个快捷方式),但我真的想要标准方式。我也看过假扣,但希望找到一个不假的解决方案......

此外,我希望不需要使用"*"+,只需使用y

更新:

我刚刚使用:reg命令进行了检查。我复制了一些文本在另一个应用程序中然后在vim中运行:reg命令。文字不在那里。然后我运行了MacVim并且:reg显示“*有复制的文本。所以我的vim有问题吗?

这是vim --version:

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 21 2013 07:13:18)
MacOS X (unix) version
Included patches: 1-244, 246-762
Compiled by idror@tlv-mp3u2
Huge 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_sgr -mouse_sysmouse
+mouse_urxvt +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg
+path_extra -perl +persistent_undo +postscript +printer +profile -python
-python3 +quickfix +reltime +rightleft -ruby +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_interact +xterm_clipboard -xterm_save
   system vimrc file: "/opt/local/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/opt/local/share/vim"
Compilation: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H   -I/opt/local/include -DMACOS_X_UNIX -no-cpp-precomp  -pipe -O2 -arch x86_64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1   -I/opt/local/include
Linking: /usr/bin/clang  -L/opt/local/lib   -L/opt/local/lib -arch x86_64 -L/usr/local/lib -o vim    -lXt -lX11 -lSM -lICE -lm  -lncurses -liconv -lintl -framework Cocoa

3 个答案:

答案 0 :(得分:4)

我不知道剪贴板有什么问题(看起来很好,似乎是Mac OS / MacVim上的Vim特有的),但是:

  

我希望不需要使用"*"+,只需使用y

分别可以使用:set clipboard^=unnamed:set clipboard^=unnamedplus来实现。

答案 1 :(得分:1)

+xterm_clipboard在Mac上无用:它根本无法帮助您获得剪贴板支持。

你安装了MacVim,为什么不简单地使用它,因为剪贴板支持?太容易了?

此外,:set clipboard^=unnamed在理论上是一个好主意,但它可以很快破坏你的剪贴板历史记录,所以...试试它一段时间,看它是否适合你。

答案 2 :(得分:0)

我认为这个问题来自vim --version

Huge version without GUI.

尝试使用/Applications/MacVim.app/Contents/MacOS/Vim代替(假设标准安装位置)。有关详细信息,请参阅How to run mvim (MacVim) from Terminal?。 (哇!我没有意识到mvim脚本是基于我自己的黑客。)