W vi mogę uzyskać terminal powłoki z :sh
poleceniem. Później mogę wrócić do vi przez exit
powłokę.
Ale jeśli długo korzystałem z terminalu powłoki i zapomniałem, czy exit
coś zamknę, czy zwrócę vi.
Czy jest jakiś sposób, aby sprawdzić, czy wrócę do vi? jobs
lub fg
nie działa.
external-command
hailinzeng
źródło
źródło
Odpowiedzi:
W zwykłej powłoce:
Po użyciu
:shell
Wygląda więc na to Vim ustawia
VIMRUNTIME
,VIM
iMYVIMRC
zmiennych środowiskowych. Spośród nichVIM
wydaje mi się najbardziej niezawodny (możesz nie mieć vimrc ani nawet środowiska uruchomieniowego vim).Możesz także ustawić własne zmienne środowiskowe:
Jest to szczególnie przydatne do przekazywania informacji o edytowanym buforze; na przykład:
Pojawi się jako coś takiego:
źródło
Mam ustawiony wiersz polecenia, aby dodać czerwony symbol „+”, który wskazuje, czy jestem w vimie „: sh” w przeciwieństwie do normalnej sesji powłoki. Podstawą tego jest to, że „$$” jest pid bieżącego procesu, więc:
Gdy już to zrobisz, możesz łatwo wstawić i skonstruować coś takiego, jak opisałem, do użycia w twoim „.bashrc” lub podobnym.
Uwaga : Metoda zmiennej środowiskowej ($ VIM) opisana gdzie indziej wydaje się lepsza niż ta, ale zostawię to, ponieważ działa w celu identyfikacji, czy jesteś procesem potomnym (nie tylko vim).
źródło
:sh
: MYVIMRC, VIM i VIMRUNTIME. Wszystko, co musisz zrobić, aby wiedzieć, że korzystasz z podpowłoki Vima, to przetestować obecność któregokolwiek z nich.Wykonaj
ps
lub lepiejps -fH
. Dawny:Zaletą używania
ps -fH
po prostups
jest to, że pozwala zobaczyć, czy znajdujesz się w podpowłocevim
lub czy umieszczasz jąvim
w tle. W takim przypadkups -fH
wyglądałoby to tak:źródło