Czy jest możliwe wybranie części ciągu znaków w terminalu Bash i usunięcie go na raz, zamiast nawigacji do punktu w poleceniu i cofnięcia go wszystkich?
dzięki!
Odpowiedzi:
2 dla odpowiedzi № 1Korzystam z powiązań emacsa i moich ulubionych skrótów linii poleceń, które nie zostały zawarte w poprzednio połączonym samouczku, są następujące:
^W - delete last word
meta-b - move cursor back one word
^R - find a previously used command
!$ - last attribute of the last command
!! - last command
Możesz także manipulować historią za pomocą wyrażeń regularnych, chociaż może to szybko stać się dość niechlujne. Zobacz "man zshexpn" dla odniesienia, przeważnie ta sama składnia regexp działa również dla basha.
Przykład:
1) Jeśli wykonasz następujące polecenie:
echo first second third fourth fifth
2) Następnie możesz wykonać to samo polecenie i usunąć "pierwszy" przez:
!!:s/first//
Jeśli to nie było to, o co prosiłeś, wyjaśnij na swoje pytanie! :)
2 dla odpowiedzi nr 2
Nie jestem w 100% pewien, czy rozumiem twoje pytanie.
Jeśli korzystasz z interaktywnej linii poleceń:
ctrl-u
: Usuwa wszystko na lewo od kursoractrl-k
: Usuwa wszystko z prawej strony kursora
1 dla odpowiedzi nr 3
Widzieć to. Alternatywnie, set -o vi
mieć vimopodobne powiązania klawiszy.
Zwróć uwagę, że lista podana w linku nie jest pełna. Możesz przeczytać man bash
dla dobrego odniesienia. Zwykle ALT-x może zostać zastąpiony przez ESC, x jeśli uruchomisz bash w terminalu, który używa skrótów Alt dla systemu okienkowego.