Używam wielu wystąpień vima. Obecnie używam funkcji bash
kv(){ a=($(pgrep vim)); kill ${a[@]}; }
aby zakończyć wszystkie działające instancje vima. Ma to tę wadę, że pozostawia nierozstrzygnięte pliki .swp wszędzie tam, gdzie vim został zabity niezapisanymi zmianami. Czy istnieje sposób na ustawienie vima, aby zapisywał swoje bufory, jeśli zostanie wysłany sygnał zabicia?
:help VimLeave
i:help v:dying
sugerują, że zdarzenie VimLeave jest wyzwalany ilekroć wyjścia Vima, nawet ze względu na sygnale.Odpowiedzi:
Nie możesz specjalnie uwięzić sygnału TERM, ale możesz „złapać” prawie każdy sygnał, który daje Vimowi szansę na pełne wdzięku wyjście. Zobacz przykład w:
Możesz zmodyfikować
:echo
polecenie w tym przykładzie do czegoś podobnego:wqall
(patrz „:help :wqall
”).Nie polecam tego jednak. Możesz łatwo zapisać plik (nad), gdy nie chcesz, aby tak się stało.
źródło
Myślę, że nie można zapisywać buforów
VimLeave
. Wypróbowałem poniższy kodTen kod pomyślnie
touch
plik, ale nie zapisuje buforów. Znalazłem ten wątek z listy mailingowej vimźródło