Обмен завершениями между запущенными экземплярами vim


10

Я использую tmuxпо большей части вместо использования vimвкладок и сплитов. Есть ли у vim возможность делиться завершением (через Ctrlnи Ctrlp) между запущенными экземплярами? Есть ли способ установить его там, где каждый из vimsних общается с сервером vim?


8
Нет, это невозможно сделать на практике . Vim прекрасно способен обрабатывать десятки и десятки буферов, используя свою мощь.
Ромен

1
@romainl, можем ли мы что-то записать в «файл завершения», откуда vimбудет читать и обновлять его список завершения?
Дж.

Ответы:


2

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

Например, завершение будет несколько «общим», если вы используете ctagsзавершение youcompletemeили любой другой плагин, который использует внешние процессы или файлы.

Завершение слов не очень полезно для вас, потому что оно будет использовать слова только в одном файле: C-N/C-P

Но omniи ctagsзавершение будет использовать ctagsбазу данных (которая должна быть построена exuberant ctagsзаранее) и будет распространяться среди всех экземпляров.

Тип C-X C-Oдля omni-complete, C-X C-]для ctags дополнения.


0

В :help i_ctrl-nнем показано, что Vim использует completeопцию для завершения слов. Далее в справке completeпоказано, что единственным реальным вариантом использования чего-то, что не является локальным для экземпляра Vim, является использование файла словаря. Затем вопрос сводится к созданию такого файла словаря с использованием всех экземпляров vim. Вы можете сделать это, анализируя все открытые файлы время от времени. Я понятия не имею, какое влияние это окажет на производительность.

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

В более общем плане, вы также можете немного изменить свой рабочий процесс, чтобы больше придерживаться того способа, который Vim предполагал использовать. Это будет означать использование одного или нескольких окон для одновременного просмотра содержимого и частого переключения буферов. Плагин, который делает переключающую часть очень хорошо, это ctrlP. После активации его нажатием кнопки вы можете выполнять нечеткий поиск файлов в разных местах, что позволяет быстро переключаться между ними. Пока вы помните имя файла, которое есть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.