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+Z
i fg
jak tmux okien dzielonych.
<C-z>
jest to, że proces Vima jest zawieszony przez system operacyjny: nic nie robi (w tym odpowiada na polecenia serwera).:shell
zexit
zamiast lub vim jest zawieszony tutaj też?<C-z>
, tylko problem ze skryptem.Odpowiedzi:
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.
źródło
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.
źródło
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;)
źródło
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
:!r
tego nie wycina.źródło