Откройте вывод команды оболочки в разделенной панели.

Откройте вывод команды оболочки в разделенной панели.

Рассмотрим любой интерпретируемый язык программирования.

Я могу запустить текущий открытый скрипт с помощью ! interpreter %и использовать клавишу Return, чтобы вернуться в vim после завершения выполнения.

Можно ли как-то не заменять текущее окно выводом выполненной команды оболочки, а вместо этого открыть вывод в новой разделенной панели? Я хотел бы по-прежнему видеть свой исходный код во время выполнения моего скрипта.

Я попробовал :split ! interpreter %, но не получилось.

Есть ли способ? Я использую vim 7.3.

решение1

При использовании :!внешней команды она выполняется в оболочке, а мгновенный вывод не сохраняется внутри Vim; вы просто видите, что выводится на терминал, а затем управление возвращается Vim после завершения внешней команды.

Чтобы сохранить вывод, вам придется считать его в Vimбуфер. Для этого есть команда :read!. Чтобы открыть новыйцарапатьбуфер, объедините это с :new:

:new | 0read ! <command>

Если вы хотите передать имя файла текущего буфера ( %) внешней команде, вам необходимо использовать :execute, чтобы оно уже было оценено в текущем буфере:

:execute 'new | 0read ! interpreter' expand('%')

Или вы используете тот факт, что с новым буфером предыдущий становитсяальтернативныйодин, и используйте #вместо %:

:new | 0read ! interpreter #

Избавьтесь от буфера с помощью :bdelete!.

Если вы хотите видеть вывод асинхронно во время его выполнения, вам понадобится внешний мультиплексор или плагин, как указано в ответе @chaos.

решение2

Насколько я знаю, в vim. Но используйте для этого терминальный мультиплексор, например screen. Перед тем, как открыть vim, запустите мультиплексор:

screen

Затем нажмите ctrl- a Sдля горизонтального и ctrl- a |для вертикального разделения экрана.

Теперь откройте файл в vimодном из разделенных экранов. И перейдите на другой экран с помощью ctrl- a tab. Обратите внимание, что на втором экране вам сначала нужно открыть новый экран ( ctrl- a c), прежде чем вы сможете его использовать.

На экране с vim вы можете редактировать файл, а на другом экране вы можете выполнить его и постоянно видеть сообщения и код.

Здеськраткая справкадля screen.

Связанный контент