Одно большое отличие neovim и Vim состоит в том, что neovim включает эмулятор терминала, который работает асинхронно.
Тем не менее, я не вижу, как я могу извлечь выгоду из этой функции. Для чего я могу это использовать? Можете ли вы привести некоторые примеры использования терминальной функции neovim, чтобы я понял, как ее можно использовать наилучшим образом?
В нормальном Vim я обычно использую :read !{command}
, :write !{command}
, Ctrl+Z
и fg
, а также tmux разделенных окон.
<C-z>
заключается в том, что процесс Vim приостановлен операционной системой: он ничего не делает (в том числе отвечает на команды сервера).:shell
сexit
вместо или подвешен здесь ВИМ?<C-z>
, это проблема вашего сценария.Ответы:
Запуск терминала внутри Vim позволяет вам использовать команды Vim на входе и выходе для программ, которые вы запускаете на этом терминале. Вы получаете поиск, копирование-вставку, макросы, синтаксическое окрашивание и т. Д. Использование
:read !{command}
и:write !{command}
дает вам это для однократных команд, но асинхронный ввод / вывод становится полезным, когда вы хотите передавать ввод во внешнюю программу по частям.Типичный вариант использования - цикл чтения-чтения-печати (REPL), который предоставляется многими языками программирования высокого уровня. Вы вводите строфу в свой исходный код, а затем передаете его в REPL для немедленной обратной связи. Поскольку REPL продолжает работать от одной отправки к другой, представленный фрагмент кода выполняется в контексте.
источник
Я думаю, что возможность создания отображений только для терминала полезна и расширяет возможности, которые есть у вас в других эмуляторах терминала, например, отображение t для запуска тестов юнитов с определенной конфигурацией, чего вы можете достичь только с помощью сложных псевдонимов или функций bash.
источник
Самым очевидным вариантом использования, который я могу придумать, является программирование. Вы когда-нибудь хотели запускать тесты внутри VIM, компилировать или использовать какой-либо консольный инструмент? Я знаю, что люди используют Tmux, но я знаю, что вы можете сделать это внутри NeoVIM. Это довольно круто!
Если вы используете буферы, вы можете добавлять, удалять, скрывать и показывать терминалы по своему усмотрению. Это прибыль;)
источник
Лучший вариант использования, который я могу придумать, - это оригинальный ADM-3a на линии 110 бит / с! Иногда на самом деле нет никакой альтернативы, чтобы смотреть на вещи бок о бок, и
:!r
это не мешает.источник