Jak przerwać fc bez wykonania polecenia?


13

Polecenie fc umożliwia wizualną edycję poprzedniego polecenia. Jeśli zmienię zdanie w edytorze, jak zatrzymać wykonywanie polecenia. W vimie wpisz q! lub q oba powodują wykonanie polecenia i CTRL-C też nie działa. Czy jedyną opcją jest usunięcie polecenia w edytorze, a następnie wq?

Odpowiedzi:


17

Z vi można pisać, :cqaby wyjść bez zapisywania i z niezerowym kodem powrotu. W takim przypadku polecenie nie zostanie powtórzone.

Alternatywnie możesz zwykle zawiesić edytor, dzięki ctrl-zktóremu wrócisz do powłoki bez ponawiania polecenia. Nadal musisz fgzrestartować edytor, ale plik tmp nie będzie już dostępny, więc możesz bezpiecznie wyjść z edytora. Lub możesz kill -9 %to zawieszony edytor.

Zgadzam się, może być łatwiej. Oczywiście zawsze możesz edytować linie w bash za pomocą komend vi lub emacs.


vi nie ma polecenia „: cq”. Czy lubisz pisać „: q!”?
schily,

@schily przepraszam, przez vi zakładałem vim. Możesz przeczytać o vimie cqw szybkiej poprawce .
Meuh

Niestety, vim nie jest zgodny z POSIX (oprócz ulepszeń istnieją odchylenia). Aby uzyskać ogólną pomoc, zwykle dobrym pomysłem jest nie poleganie na ulepszeniach lokalnych lub unikalnych dostawców. BTW:: q! jest wystarczający, ponieważ POSIX vi zakończy działanie! = 0 w tym przypadku.
schily,

@schily W zależności od zainstalowanego vima jest prawdopodobnie w większości przypadków bezpieczny, aw tym przypadku pytający specjalnie powiedział, q!że nie działał dla nich
Michael Mrozek

2
Wynika to z faktu, że nie wystąpił błąd, a zatem kod wyjścia wynosi 0. W vi działa napisanie: c (powoduje niedozwolony komunikat polecenia), a następnie wpisanie: q! a zapamiętany błąd skutkuje kodem wyjścia! = 0. To jednak nie działa w vimie. Moje poprzednie założenie, że: q! zawsze powoduje kod wyjścia! = 0 było niepoprawne.
schily

3

Być może łatwiejszym sposobem na zapamiętanie jest usunięcie polecenia (dd powinno zrobić) i wyjście ( ZZlub jakikolwiek inny sposób wyjścia z zapisywania powinien zrobić). IMHO :cqjest dość tajemniczy.

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.