Автозаполнение Vim в терминальном режиме - PullRequest
0 голосов
/ 27 сентября 2018

В режиме вставки список кандидатов на завершение можно отобразить, нажав Ctrl n (для завершения режима вставки) или Ctrl x Ctrl o (для завершения Omni, когда установлен omnifunc).Однако эти сочетания клавиш не работают в режиме терминала (:term).

Вопрос: как получить список кандидатов на завершение в режиме терминала?Я ожидал, что смогу сделать кандидатов на завершение отображения vim, таких как grep, kill, cd, python3, и путей к файлам, таких как /home/user/Desktop, /home/user/Documents и т. Д.

Iиспользую vim 8.0.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

A :terminal - это просто представление интерактивной оболочки (или другой команды, запускаемой или заменяемой оболочкой).Vim предлагает некоторую интеграцию (передача набранных ключей, вывод на шоу), но это оболочка, которая запускает шоу .

Поскольку Vim не знает, что там происходит (вы могли запуститькоманда, в которой завершение путей или команд файловой системы, как вы предлагали, не имело бы никакого смысла; вы можете поместить ssh в другую систему, в которой не установлено python3), она не может и не должна предлагать вамэти вещи.Вместо этого, как уже прокомментировали другие, это задача оболочки (и большинство из них обеспечивают завершение, некоторые (например, Bash), даже очень мощные и расширяемые, выходящие далеко за рамки ваших предложений), или команда, которая выполняется.

0 голосов
/ 27 сентября 2018

В этом случае терминал отображается в vim, поэтому ваш ввод поступает на терминал, а не в vim.Это означает, что мы должны использовать завершение, которое предлагает вам ваш терминал.tab должен работать как всегда, для завершения стиля vim вы можете добавить это к своему .inputrc:

# cycle forward
Control-n: menu-complete
# cycle backward
Control-p: menu-complete-backward
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...