Компиляция Vim 7.3 с функцией + clientserver в Mac OS X

Как скомпилировать Vim с помощью функции clientserver в Mac OS X? У меня есть vim-7.3.tar.bz2 источник

Я понимаю, что MacVim имеет встроенный модуль , но он работает только при запуске GUI. Я хочу работать с версией CLI, так как моя работа намного проще с CLI (я могу, например, с легкостью переключиться на терминал).

Я скомпилировал Vim 7.3 со следующими параметрами ./configure

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

Я рассмотрел этот вопрос в Unix и Linux, но он заботится только о решении Ubuntu. Кроме того, поскольку я включил набор функций huge, я должен ожидать +clientserver, в соответствии с vimdoc:

Таким образом, если функция отмечена знаком "N", она включена в обычные, большие и огромные версии Vim.

Обновление:

Функция сервера работает только с графическим интерфейсом MacVim. Чтобы воспроизвести это:

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

В другой консоли:

$ vim --serverlist # does not output anything

Если я запустил GUI MacVim,

$ vim --serverlist
VIM1

Но мое требование - работать в CLI Vim.

Ответы

Ответ 1

Я получил его для работы, добавив --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.

Ответ 2

Теперь вы можете сделать это, используя HomeBrew:

brew install vim --with-client-server

Похоже, это было добавлено еще в 2013 году, поэтому я не уверен, почему он не упоминается чаще.

На всякий случай, когда вы делали это, чтобы начать использовать Pterosaur, как я, после установки vim с HomeBrew вам может потребоваться принудительно symlink, если вы используете MacVim через HomeBrew.

brew link --overwrite macvim

Затем просто установите extensions.pterosaur.vimbinary на /usr/local/bin/vim на странице Firefox about:config, и он должен работать. Я набираю это, используя Pterosaur прямо сейчас, хотя иногда Python падает.

Ответ 3

Использование 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

Ответ 4

Вы можете просто запустить версию CLI vim, включенную в MacVim. Если MacVim установлен как /Applications/MacVim.app, версия CLI:

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

Это скомпилировано с помощью функции clientserver. Вы можете добавить символическую ссылку, чтобы поместить ее в свой $PATH.

Ответ 6

Даже после прочтения всех этих ответов, мне пришлось потратить несколько часов на то, чтобы заставить все работать, поэтому я хотел бы дать некоторые четкие шаги для такого, как я.

Учитывая, что почти все пользователи Mac используют Homebrew, мое решение использует Homebrew для установки.

  • brew cast install xquartz
  • Запустите XQuartz. Возможно, вам придется обновить его.
  • Выйдите из системы и войдите в систему, или перезагрузите Mac.
  • brew install vim --with-client-server

Теперь, если вы запустите vim, XQuartz также будет запущен. И если вы запустите vim с аргументом --servername <name>, вы сможете увидеть сервер с помощью опции --serverlist.

Но после этого вам нужно запустить XQuartz с помощью vim, а также выполнить некоторую работу, чтобы сделать работу с буфером обмена снова. Я нашел сообщение в блоге и последовал за ним, но не смог корректно работать с буфером обмена.