Подтвердить что ты не робот

Оставить окно разделения vim в режиме вставки

Я хочу просмотреть вывод команды bash в окне разделения vim :split. Для этого я установил "Conque Shell", который отображает bash в разделенном окне по :ConqueTermSplit bash. Затем я могу запустить команду оболочки и посмотреть выход в режиме вставки. Однако, чтобы вернуться в другое окно, мне нужно ввести < CTRL-W > < & вверх GT; в командном режиме, поэтому мне нужно оставить режим вставки. Следовательно, отображение вывода команды замерзает и продолжается, только если я вернусь в это окно и войду в режим ввода. Итак, как я могу оставить "Conque Shell", не покидая режим вставки.

Обратите внимание, что другие способы просмотра вывода bash во втором окне могут также решить мою проблему. Однако он должен обновляться, пока я работаю в другом окне, и позволяю мне сигнализировать, например. < CTRL-C > к приложению.


В документации ConqueTerm говорится:

3.1.5 Продолжайте обновлять буфер терминала * ConqueTerm_ReadUnfocused *

Если установлено значение 1, ваши буферы Conque будут продолжать обновляться после того, как вы переключился на другой буфер.

Примечание: буферы Conque могут продолжать обновляться, но они не будут прокручиваться вниз, как новые строки добавляются за пределы области видимого буфера. Это ограничение языка сценариев Vim, для которого я не нашел обходной путь. >   let g: ConqueTerm_ReadUnfocused = 1

4b9b3361

Ответ 1

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

То, как я сейчас сталкиваюсь с этой проблемой, - это tmux, который описывается как:

терминальный мультиплексор: он включает несколько терминалов (или окон), каждый из которых запускает отдельную программу, которую нужно создать, получить доступ и управляемый с одного экрана.

Итак, в основном, вместо того, чтобы разбивать ваш экран в Vim, вы разделили бы его с помощью tmux, а затем в одном окне запустите Vim, а в другом запустите любую другую программу, которую вы хотите, которая будет полностью обновляться независимо от Vim. И точно так же, как Vim, вы можете переключаться между окнами (или панелями, так как они вызываются в tmux lingo), используя пару ключевых штрихов.

Существует еще один терминальный мультиплексор, называемый экран GNU, который также довольно популярен. И причина, по которой я упоминаю об этом, заключается в том, что мне нравится иметь параметры, а также есть два плагина для Vim, которые позволяют отправлять вывод непосредственно на подключенный экран или сеанс tmux. Для экрана GNU slime.vim, а для tmux tslime.vim.

Ответ 2

Используя VIM и ConqueTerm, вы можете использовать CTRL + W и UP/Down для изменения окон в режиме split.

Просто нажмите ESC, чтобы выйти из режима insert.

Это хорошо работает на моей стороне.