Przypadek użycia emulatora terminala neovim?


10

Jedną z dużych różnic między neovimem a Vimem jest to, że neovim zawiera emulator terminala, który działa asynchronicznie.

Nie widzę jednak, jak mogę skorzystać z tej funkcji. Do czego mogę tego użyć? Czy możesz podać kilka przypadków użycia funkcji terminalu neovim, aby zrozumieć, w jaki sposób mogę go najlepiej wykorzystać?

W normalnym Vim normalnie używać :read !{command}, :write !{command}, Ctrl+Zi fgjak tmux okien dzielonych.


Jednym z problemów <C-z>jest to, że proces Vima jest zawieszony przez system operacyjny: nic nie robi (w tym odpowiada na polecenia serwera).
Martin Tournoij,

Że to pomoże korzystać :shellz exitzamiast lub vim jest zawieszony tutaj też?
cbaumhardt

1
@Carpetsmoker, czego oczekujesz od edytora tekstu, gdy go nie używasz?
romainl,

@romainl Cóż, na przykład mam skrypt, który skupi sesję Vima na edycji konkretnego pliku; to zawiesi się na zawieszonych procesach Vima ...
Martin Tournoij

1
To nie jest problem <C-z>, tylko problem ze skryptem.
romainl

Odpowiedzi:


10

Uruchomienie terminala w Vimie pozwala na użycie poleceń Vima na wejściu i wyjściu do programów uruchamianych w tym terminalu. Dostajesz wyszukiwanie, kopiowanie-wklejanie, makra, kolorowanie składni itp. Używanie :read !{command}i :write !{command}daje to dla poleceń jednorazowych, ale asynchroniczne wejście / wyjście staje się przydatne, gdy chcesz przesłać dane wejściowe do zewnętrznego programu kawałek po kawałku.

Typowym przypadkiem użycia jest pętla REPL ( read-eval-print ), którą zapewnia wiele języków programowania wysokiego poziomu. W kodzie źródłowym wpisujesz zwrotkę, a następnie podajesz ją do REPL w celu uzyskania natychmiastowej informacji zwrotnej. Ponieważ REPL wciąż działa od jednego zgłoszenia do drugiego, przesłany fragment kodu jest wykonywany w kontekście.


6

Myślę, że opcja tworzenia mapowań tylko na terminalach jest cenna i rozszerza opcje, które masz w innych emulatorach terminali, np. Mapowanie t, aby uruchamiać unittesty z określoną konfiguracją, co można osiągnąć tylko poprzez złożone aliasy lub funkcje bash.


4

Najbardziej oczywistym przypadkiem, o którym myślę, jest programowanie. Czy kiedykolwiek chciałeś uruchomić testy w VIM, skompilować lub użyć dowolnego narzędzia konsoli? Wiem, że ludzie używają Tmux, ale wiem, że możesz to zrobić w NeoVIM, muszę powiedzieć. To jest niesamowite!

Jeśli korzystasz z buforów, możesz dowolnie dodawać, usuwać, ukrywać i pokazywać terminale. To jest zysk;)

Uruchamianie powłoki w NeoVIM


3

Najlepszy przypadek użycia, jaki mogę wymyślić, to oryginalny ADM-3a na linii 110 bps! Czasami naprawdę nie ma substytutu dla patrzenia na rzeczy obok siebie i :!rtego nie wycina.


3
Powodzenia w wykonywaniu czegokolwiek w dwóch oknach 39x12 (lub 39x24!) ;-)
romainl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.