Jak uruchamiać polecenia Uniksa z poziomu Vima?

76

Jak mogę uruchamiać komendy Unix, gdy jestem w vimie?

funk-shun
źródło

Odpowiedzi:

102

Przejdź do trybu poleceń Esc, a następnie uruchom :!unix_command. Wszystko uruchamiane z :wiersza rozpoczynającego się od huku !będzie uruchamiane jako polecenie powłoki unix. Zostanie wyświetlony wynik i będziesz mógł nacisnąć klawisz, aby wrócić do swojej pracy w vimie.

Jeśli masz zaznaczony tekst w trybie wizualnym i chcesz wysłać go do polecenia jako STDIN, naciśnij !!i wprowadź polecenie. Wyniki polecenia zastąpią wybrany tekst.

Caleb
źródło
14
Ponadto, !! bez zaznaczonego tekstu, możesz uruchomić polecenie, a następnie wstawić wynik w bieżącej pozycji kursora - nie musisz wysyłać rzeczy do STDIN i zamieniać je, jeśli nie potrzebujesz / nie chcesz.
Kromey
4
również, jeśli po prostu chcesz umieścić wynik polecenia w dokumencie, po prostu zrób :r!unix_command. Jest to przydatne w przypadku poleceń, takich jakdate
Yab
2
Możesz także wykonać wiele linii bufora vi przez powłokę (lub dowolny interpreter) i zastąpić je wynikiem wykonania. np .: :10,20!shlub, 'a,'b!sh
formuj
1
Warto też zauważyć, że zależy to od używanego systemu operacyjnego. Jeśli używasz systemu Windows, wykona polecenie powłoki systemu Windows. Wiele osób, które to czytają, już to wie, ale dla osób pochodzących z Google pomyślałem, że warto o tym wspomnieć.
Andrew
25

Z kopii lustrzanej pomocy VIM :

:shell        :sh[ell]        start a shell
:!            :!{command}     execute {command} with a shell
Jay Elston
źródło