Вариант использования неовим терминального эмулятора?


10

Одно большое отличие neovim и Vim состоит в том, что neovim включает эмулятор терминала, который работает асинхронно.

Тем не менее, я не вижу, как я могу извлечь выгоду из этой функции. Для чего я могу это использовать? Можете ли вы привести некоторые примеры использования терминальной функции neovim, чтобы я понял, как ее можно использовать наилучшим образом?

В нормальном Vim я обычно использую :read !{command}, :write !{command}, Ctrl+Zи fg, а также tmux разделенных окон.


Одна из проблем <C-z>заключается в том, что процесс Vim приостановлен операционной системой: он ничего не делает (в том числе отвечает на команды сервера).
Мартин Турной

Это помогло бы использовать :shellс exitвместо или подвешен здесь ВИМ?
cbaumhardt

1
@Carpetsmoker, что вы ожидаете от своего текстового редактора, когда вы его не используете?
Ромен

@romainl Ну, например, у меня есть скрипт, который будет фокусировать сеанс Vim на редактировании определенного файла; это будет зависать от приостановленных процессов Vim ...
Martin Tournoij

1
Это не проблема <C-z>, это проблема вашего сценария.
Ромен

Ответы:


10

Запуск терминала внутри Vim позволяет вам использовать команды Vim на входе и выходе для программ, которые вы запускаете на этом терминале. Вы получаете поиск, копирование-вставку, макросы, синтаксическое окрашивание и т. Д. Использование :read !{command}и :write !{command}дает вам это для однократных команд, но асинхронный ввод / вывод становится полезным, когда вы хотите передавать ввод во внешнюю программу по частям.

Типичный вариант использования - цикл чтения-чтения-печати (REPL), который предоставляется многими языками программирования высокого уровня. Вы вводите строфу в свой исходный код, а затем передаете его в REPL для немедленной обратной связи. Поскольку REPL продолжает работать от одной отправки к другой, представленный фрагмент кода выполняется в контексте.


6

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


4

Самым очевидным вариантом использования, который я могу придумать, является программирование. Вы когда-нибудь хотели запускать тесты внутри VIM, компилировать или использовать какой-либо консольный инструмент? Я знаю, что люди используют Tmux, но я знаю, что вы можете сделать это внутри NeoVIM. Это довольно круто!

Если вы используете буферы, вы можете добавлять, удалять, скрывать и показывать терминалы по своему усмотрению. Это прибыль;)

Запуск оболочки внутри NeoVIM


3

Лучший вариант использования, который я могу придумать, - это оригинальный ADM-3a на линии 110 бит / с! Иногда на самом деле нет никакой альтернативы, чтобы смотреть на вещи бок о бок, и :!rэто не мешает.


3
Удачи в выполнении двух окон 39x12 (или 39x24!) ;-)
romainl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.