Работа с vim на нескольких мониторах

У меня три монитора.

Обычно я запускаю один развернутый xterm на каждом мониторе, подключенном к одному и тому же сеансу GNU screen.

Можно ли использовать аналогичную модель для vim? Возможно ли запустить три vim, все из которых используют один и тот же «сеанс vim»:

  • В каждом окне vim отображается отдельная вкладка vim
  • настройки vim общие для всех окон
  • Не получается "Файл подкачки... уже существует!" сообщение об ошибке, если я открываю один и тот же файл на двух вкладках.

person codeape    schedule 22.10.2010    source источник


Ответы (4)


У меня есть рабочее решение, в котором общаются два экземпляра vim.

http://github.com/codeape2/vim-multiple-monitors

Он использует автокоманду SwapExists, чтобы указать другому экземпляру открыть файл, если обнаружен существующий файл подкачки.

person codeape    schedule 28.10.2010
comment
Я пытался использовать ваш скрипт vim, но не понимаю, как вы предполагали, что vim понимает аргумент --servername. Мой vim (7.3) просто умирает с сообщением об ошибке Unknown option argument: "--servername". Что я пропустил? - person bitmask; 19.06.2012
comment
Возможно, ваш vim не скомпилирован с поддержкой удаленного вызова. В vim выполните :version. Проверьте, включает ли функции +clientserver - person codeape; 19.06.2012
comment
В Ubuntu мне пришлось установить vim-gnome, чтобы получить vim с поддержкой +clientserver. - person codeape; 24.09.2019

Вы можете использовать vim под screen.

$ screen
$ vim

# on another terminal 
$ screen -x
# the same vim screen

Если ваш эмулятор терминала поддерживает вкладки (например, gnome-терминал), вы можете использовать его в качестве вкладок (ИМХО, поддержка вкладок в gnome-терминалах лучше, чем в vim, за исключением, возможно, того, что вы не можете копировать и вставлять между различными сеансами vim, однако вместо этого вы можете использовать системный буфер копирования и вставки: "+y" и "+p").

Это не работает, если вы используете gvim.

person Lie Ryan    schedule 28.10.2010
comment
Не будет ли это просто отражением того, что происходит? - person Uri; 26.03.2016

Нет, экземпляр Vim ограничен одним окном приложения на вашем рабочем столе. Различные экземпляры Vim имеют независимые сеансы.

Кроме того, имейте в виду, что если вы откроете один и тот же файл в двух разных экземплярах Vim, вы не только получите сообщение «Файл подкачки существует», но и два экземпляра не используют общий буфер, поэтому изменения, сделанные в одном, не зависят от разное.

Если измененный файл сохранен в одном экземпляре, вы получите сообщение, когда вы вернетесь к файлу в другом экземпляре Vim, что «файл изменился с момента начала редактирования» и спросит вас, хотите ли вы перезагрузить файл (что загрузит изменения как сохранены другим экземпляром, игнорируя любые изменения, сделанные вами в текущем экземпляре).

person Herbert Sitz    schedule 22.10.2010

Neovim — это проект, целью которого является предоставление возможности подключения/отсоединения vim, такой как tmux. Эта функция еще не реализована (19 июня 2015 г.), но может появиться в ближайшее время.

У этого проекта есть много других основных функций, которые вы можете увидеть на neovim.io.

person Community    schedule 19.06.2015
comment
Я думаю, что по состоянию на ноябрь 2017 года это все еще не реализовано и над ним не работают. - person JonnyRaa; 02.11.2017