Vim плагин для автоматического завершения нескольких файлов

Есть ли плагин vim, который выполняет автозаполнение нескольких файлов?

Пример:

  • Открытые файлы a.txt а также b.txt,
  • При использовании vim редактировать b.txtЯ хочу получать результаты автозаполнения от a.txt а также b.txt

Я уже использую youCompleteMe плагин, но это делает только завершение в одном файле для методов из этого языка.

Какие-либо предложения?

1 ответ

Решение

Встроенное завершение Vim с помощью Ctrl-N в режиме вставки уже поддерживает это. Там нет необходимости для плагина.

Вы можете увидеть это с помощью следующего теста:

  1. Создать файл very-basic-vimrc со следующим содержанием:

    set nocompatible
    filetype plugin indent on
    syntax enable
    
  2. Бежать vim -u very-basic-vimrc, Это запускает Vim, используя этот файл в качестве вашего vimrc, так что вы можете проверить, как работает Vim без каких-либо плагинов.

  3. В пустом буфере введите текст "один два три".

  4. Бежать :new чтобы открыть другой буфер, и введите "четыре пять шесть".

  5. Вернитесь к первому буферу с помощью Ctrl-W W, затем откройте новую строку с o,

  6. Введите "fi" и нажмите Ctrl-N. Это инициирует следующее совпадение при автозаполнении - см . Документацию Vim дляi_CTRL-N, "Пять" будет успешно завершено, даже если слово "пять" находится в другом буфере.

Если эта функциональность не работает для вас с вашим обычным vimrc, один из ваших установленных плагинов, таких как YouCompleteMe, может мешать этому поведению. Измените настройки для этого плагина или отключите его.

Я лично использую Supertab. С Supertab я могу успешно набрать Tab, чтобы завершить слово из другого буфера. Другие популярные плагины завершения, вероятно, также поддерживают эту функцию.

Я вижу, что YouCompleteMe стремится предложить завершение, даже не вводя Tab. Если завершения из других буферов не отображаются в этом автоматически запускаемом списке, YouCompleteMe, вероятно, делает это специально, чтобы нормальная типизация не слишком сильно замедлялась. Вам придется искать в документации YCM опцию, которая его включает, или отображение, которое расширяет список завершений, чтобы включать в себя дополнения из других буферов. Если ни один из них не существует, вы можете создать проблему, запрашивая ее, на трекере проблем YouCompleteMe.

Другие вопросы по тегам