Compile Vim 7.3 with +clientserver feature on Mac OS X

眉间皱痕 提交于 2019-12-30 03:55:08

问题


How do I compile Vim with the clientserver feature on Mac OS X? I have the vim-7.3.tar.bz2 source

I understand that MacVim has this built in, but it only works when the GUI is running. I want to work with a CLI version, as my work is so much easier with the CLI (I can switch to the Terminal with ease, for example).

I compiled Vim 7.3 with the following ./configure options

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

I have looked at this question on Unix & Linux, but it only takes care of the Ubuntu solution. Also, since I enabled the huge feature set, I should expect +clientserver, according to the vimdoc:

Thus if a feature is marked with "N", it is included in the normal, big and huge versions of Vim.

Update:

The server feature only works with GUI MacVim. To reproduce this:

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

The in another console:

$ vim --serverlist # does not output anything

Whereas if I'll fire up the GUI MacVim,

$ vim --serverlist
VIM1

But my requirement is to work in CLI Vim.


回答1:


You can now do this using HomeBrew as well:

brew install vim --with-client-server

It looks like this was added back in 2013, so I'm not sure why it's not mentioned more frequently.

Just in case you were doing this to start using Pterosaur like me, after installing vim with HomeBrew, you might have to force the symlink if you're using MacVim through HomeBrew as well.

brew link --overwrite macvim

Then, just set the extensions.pterosaur.vimbinary to /usr/local/bin/vim in the Firefox about:config page and it should work. I'm typing this using Pterosaur right now, though occasionally Python crashes.




回答2:


Using MacPorts:

$ sudo port install vim +huge +gtk2

In a new window:

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

And in another window:

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

Quick. Easy.

EDIT

The +gtk2 is required to make it work, +huge is not enough. Actually, I think that it should work without +gtk2 as long as you have +x11. Unfortunatelly I'm not on my Mac anymore so I can't try. The whole thing takes about 3 minutes so you could try it.

ENDEDIT




回答3:


I got it to work by adding --enable-gui=gtk2

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

Then run from the console:

$ vim --servername FOOBAR_SERVER

From another console:

$ vim --serverlist
FOOBAR_SERVER

Or from within any Vim instance:

:echo serverlist()
FOOBAR_SERVER

Note that X11.app will also boot up as it is necessary for the Vim server to function.




回答4:


You could just run the CLI version of vim included in MacVim. With MacVim installed as /Applications/MacVim.app, the CLI version is:

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

This is compiled with the clientserver feature. You can add a symlink to this to put it in your $PATH.




回答5:


Even after reading all these answers, I had to spend several hours for making things work, so I would like to give some clear steps for someone like me.

Given that almost all of the Mac users are using Homebrew, my solution is using Homebrew for installtion.

  1. brew cask install xquartz
  2. Launch XQuartz. You might need to update it.
  3. Logout and login, or restart your Mac.
  4. brew install vim --with-client-server

Now if you launch vim, XQuartz will be launched as well. And if you run vim with --servername <name> argument, you will be able to see the server using --serverlist option.

But after this, you have to launch XQuartz with vim and also you have to do some work for making clipboard thing work again. I found a blog post and followed it but failed to make it work correctly regarding the clipboard.




回答6:


You should get a command line executable with MacVim.

  • How to run mvim (MacVim) from Terminal?.


来源:https://stackoverflow.com/questions/10231223/compile-vim-7-3-with-clientserver-feature-on-mac-os-x

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!