Використовувати корпус для емулятора терміналу neovim?


10

Важливою відмінністю neovim від Vim є те, що neovim включає в себе термінальний емулятор, який працює асинхронно.

Однак я не бачу, як я можу отримати прибуток від цієї функції. Для чого я можу його використовувати? Чи можете ви надати кілька випадків використання термінальної функції neovim, щоб я зрозумів, як я можу використовувати його найкращим чином?

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


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

Це допомогло б використовувати :shellз exitзамість або підвішений тут ВІМ?
cbaumhardt

1
@Carpetsmoker, що ви очікуєте робити від вашого текстового редактора, коли ви не використовуєте його?
romainl

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

1
Це не проблема <C-z>, це проблема з вашим сценарієм.
romainl

Відповіді:


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.