Kiedy wprowadzam polecenie obejmujące wiele linii w Bash, jak mogę edytować poprzednie linie? Jestem użytkownikiem Linux Mint (Lisa) używającym terminala GNOME.
Załóżmy na przykład, że piszę:
$ echo "foo bar
> baz
>
A kiedy już zamierzam wpisać trzeci wiersz polecenia, nagle uświadom sobie, że chcę, aby „foo” i „bar” znajdowały się w osobnych wierszach. Jak zmienić położenie kursora między „foo” a „paskiem”, tak że mógłbym nacisnąć Enter i umieścić je w osobnych wierszach?
(Nie jest to łatwe, jak mogłoby się wydawać. Strzałka w górę nie działa, podobnie jak Ctrl-P. Proszę więc wypróbować przed opublikowaniem! Dzięki!)
linux
bash
gnome
gnome-terminal
Asher Walther
źródło
źródło
Odpowiedzi:
To niestety zależy
bash
od terminala. Twoje opcje to:Używaj średników zamiast znaków nowej linii, chociaż nawet wtedy nie możesz przesunąć linii ekranu w górę, ale musisz używać poleceń ruchu znaków lub słów. (Dziwne,
zsh
przynajmniej pozwala poruszać się po poleceniu złożonym podczas edycji historii, ale nie w bieżącym poleceniu.) Czasamifc
(który wrzuca cię do edytora za pomocą poprzedniego polecenia) jest najłatwiejszym sposobem obsługi poleceń złożonych.Jeśli używasz Bash, użyj następującej kombinacji klawiszy:
Otworzy się polecenie, nad którym pracujesz za pomocą edytora tekstu. Zapisz plik i wyjdź. (Znalazłem polecenie w prezentacji Shell Hatera .) Użytkownicy Zsh mają tę alternatywę .
źródło
Rozwiązaniem jest, aby nigdy nie wprowadzać polecenia, dopóki linia nie będzie odpowiednia, po prostu wpisz: CtrlvCtrlj kiedy chcesz przejść do następnego wiersza. Metabcofnąć słowo.
podziękowania dla odpowiedzi @ rici
źródło
Zabawne Ctrl+Cjest to, czego szukasz.
kiedy jesteś włączony
wystarczy nacisnąć Ctrl+C(edytowany wiersz poleceń zawiesi się) i nacisnąć Up(poprzednia historia). Twoje pytanie brzmi: (zauważ brak>)
Teraz możesz się poruszać Left Rightnawet z przeskokami linii.
Jest tylko jedno dziwactwo, musisz być na ostatnim znaku, aby dodać kolejną linię, więc poruszaj się, aby edytować istniejące linie (przejdź od początku Ctrl+A) i naciśnij, Enter jeśli to wystarczy lub goto end ( Ctrl+E), aby dodać więcej linii Enter. Kolejną wadą jest to, że Ctrl+_(Cofnij) przywraca tylko zmiany od ostatniegoCtrl+C
źródło
Skopiuj polecenia i wklej je do notatnika, a następnie sformatuj je stamtąd. Następnie możesz skopiować swoje polecenia z powrotem do terminala.
źródło