Компиляция 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
.
Ответ 5
Вы должны получить исполняемый файл командной строки с помощью MacVim.
Ответ 6
Даже после прочтения всех этих ответов, мне пришлось потратить несколько часов на то, чтобы заставить все работать, поэтому я хотел бы дать некоторые четкие шаги для такого, как я.
Учитывая, что почти все пользователи Mac используют Homebrew, мое решение использует Homebrew для установки.
-
brew cast install xquartz
- Запустите XQuartz. Возможно, вам придется обновить его.
- Выйдите из системы и войдите в систему, или перезагрузите Mac.
-
brew install vim --with-client-server
Теперь, если вы запустите vim, XQuartz также будет запущен. И если вы запустите vim с аргументом --servername <name>
, вы сможете увидеть сервер с помощью опции --serverlist
.
Но после этого вам нужно запустить XQuartz с помощью vim, а также выполнить некоторую работу, чтобы сделать работу с буфером обмена снова. Я нашел сообщение в блоге и последовал за ним, но не смог корректно работать с буфером обмена.