在Mac OS X上使用+ clientserver功能编译Vim 7.3

时间:2012-04-19 15:15:27

标签: macos vim compilation client-server

如何使用Mac OS X上的clientserver功能编译Vim?我有vim-7.3.tar.bz2 source

我知道MacVim内置了这个,但它只在GUI运行时才有效。我想使用CLI版本,因为我的工作使用CLI更容易(例如,我可以轻松切换到终端)。

我使用以下./configure选项

编译了Vim 7.3
./configure --enable-rubyinterp --enable-pythoninterp --with-features=huge

我看过这个question on Unix & Linux,但它只关注Ubuntu解决方案。此外,由于我启用了huge功能集,根据vimdoc,我应该期待+clientserver

  

因此,如果某个功能标有" N",它将包含在Vim的普通版,大版和大版中。

更新

服务器功能仅适用于GUI MacVim。重现这一点:

$ Applications/MacVim.app/Contents/MacOS/Vim --servername VIM

在另一个控制台中:

$ vim --serverlist # does not output anything

然而,如果我启动GUI MacVim,

$ vim --serverlist
VIM1

但我的要求是在CLI Vim中工作。

6 个答案:

答案 0 :(得分:10)

您现在也可以使用HomeBrew执行此操作:

brew install vim --with-client-server

它看起来像this was added back in 2013,所以我不确定为什么不经常提及它。

如果您这样做是为了开始使用像我这样的Pterosaur,在使用HomeBrew安装vim之后,如果您通过HomeBrew使用MacVim,则可能必须强制使用符号链接。

brew link --overwrite macvim

然后,只需在Firefox extensions.pterosaur.vimbinary页面中将/usr/local/bin/vim设置为about:config即可。我现在正在使用Pterosaur打字,虽然偶尔Python会崩溃。

答案 1 :(得分:7)

使用MacPorts:

$ sudo port install vim +huge +gtk2

在新窗口中:

$ /opt/local/bin/vim --servername FOO

在另一个窗口中:

$ /opt/local/bin/vim --serverlist
FOO

快速。容易。

修改

+gtk2是必需的,+huge是不够的。实际上,只要你有+gtk2,我认为它应该在没有+x11的情况下有效。不幸的是,我不再在我的Mac上,所以我不能尝试。整个过程大约需要3分钟,所以你可以尝试一下。

EndEdit中

答案 2 :(得分:4)

我通过添加--enable-gui=gtk2

让它发挥作用
./configure --enable-rubyinterp --enable-pythoninterp --with-features=huge --enable-gui=gtk2

然后从控制台运行:

$ vim --servername FOOBAR_SERVER

从另一个控制台:

$ vim --serverlist
FOOBAR_SERVER

或者在任何Vim实例中:

:echo serverlist()
FOOBAR_SERVER

请注意,X11.app也会启动,因为Vim服务器必须正常运行。

答案 3 :(得分:2)

您可以运行MacVim中包含的vim的CLI版本。将MacVim安装为/Applications/MacVim.app,CLI版本为:

/Applications/MacVim.app/Contents/MacOS/Vim

这是使用clientserver功能编译的。您可以为此添加符号链接,以将其添加到$PATH

答案 4 :(得分:2)

即使在阅读了所有这些答案之后,我也不得不花费几个小时来使事情有效,所以我想为像我这样的人提供一些明确的步骤。

鉴于几乎所有Mac用户都在使用Homebrew,我的解决方案是使用Homebrew进行安装。

  1. brew cask install xquartz
  2. 启动XQuartz。您可能需要更新它。
  3. 退出并登录,或重启Mac。
  4. brew install vim --with-client-server
  5. 现在,如果您启动vim,XQuartz也会启动。如果你使用--servername <name>参数运行vim,你将能够使用--serverlist选项查看服务器。

    但是在此之后,你必须用vim启动XQuartz,你还需要做一些让剪贴板工作再次工作的工作。我找到了a blog post并跟着它,但未能使其在剪贴板上正常工作。

答案 5 :(得分:1)

您应该使用MacVim获取命令行可执行文件。