15

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

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

我使用以下./configure选项编译了 Vim 7.3

./configure --enable-rubyinterp --enable-pythoninterp --with-features=huge

在 Unix & Linux 上看过这个问题,但它只处理 Ubuntu 解决方案。另外,由于我启用了功能集,根据vimdochuge,我应该期望:+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 中工作。

4

6 回答 6

11

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

brew install vim --with-client-server

看起来这是在 2013 年添加的,所以我不确定为什么没有更频繁地提及它。

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

brew link --overwrite macvim

然后,只需在 Firefox页面中设置为,它应该可以工作extensions.pterosaur.vimbinary。我现在正在使用 Pterosaur 输入此内容,尽管 Python 偶尔会崩溃。/usr/local/bin/vimabout:config

于 2015-02-12T15:16:53.997 回答
8

使用 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分钟,所以你可以试试。

结束编辑

于 2012-04-19T15:50:56.150 回答
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 服务器需要运行。

于 2012-04-20T06:42:22.453 回答
3

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

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

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

于 2012-04-19T15:19:58.520 回答
2

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

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

  1. brew cask install xquartz
  2. 启动 XQuartz。您可能需要更新它。
  3. 注销并登录,或重新启动您的 Mac。
  4. brew install vim --with-client-server

现在如果你启动 vim,XQuartz 也会启动。如果您使用--servername <name>参数运行 vim,您将能够看到使用--serverlist选项的服务器。

但在此之后,您必须使用 vim 启动 XQuartz,并且您还必须做一些工作以使剪贴板再次工作。我找到了一篇博客文章并关注了它,但未能使其在剪贴板方面正常工作。

于 2016-12-27T21:09:15.967 回答
1

您应该使用 MacVim 获得一个命令行可执行文件。

于 2012-04-19T15:18:40.917 回答