Skrót klawiaturowy do zapisywania wpisanych poleceń i czyszczenia linii

12

Znasz sytuację: Jesteś w połowie pisania długiej komendy (na przykład komunikat zatwierdzenia) i zdajesz sobie sprawę, że zapomniałeś wykonać pewne wstępne polecenie, którego nie można dodać &&. Zwykle, gdy mi się to przydarza, wybieram to, co wpisałem za pomocą myszy, kopiuję do schowka, wciskam Ctrl-U, aby wyczyścić linię, uruchamiam polecenie wstępne i wklejam ze schowka. Ale może istnieje lepszy sposób, najlepiej bez konieczności używania myszy? Szukam rozwiązań dla bash i / lub zsh.

Chiborg
źródło

Odpowiedzi:

20

Po użyciu CTRL-U możesz użyć CTRL-Y, aby wkleić z powrotem to, co skasowałeś. Działa po skasowaniu słowa lub kilku słów za pomocą CTRL-W.

Zauważ, że w ten sposób tak naprawdę nie musisz kopiować niczego do schowka lub wybierać go myszką - CTRL-U faktycznie szarpie linię do osobnego schowka, że ​​tak powiem.

Eduardo Ivanec
źródło
5

Dodaj „#” na początku bieżącej linii. Naciśnij Enter, aby dodać komentarz do swojej historii. Wykonaj polecenie wymagania wstępnego. Przejdź do poprzedniego polecenia i usuń #.

Glenn Jackman
źródło
5

To było ostatnio zadawane i omawiane na stronie Unix i Linux SE. Moja odpowiedź wyjaśniła, że jeśli używasz zsh jako powłoki, możesz użyć funkcji wypychania, aby ukryć trwające polecenie, uruchomić coś innego, a następnie wróci twoje pierwsze polecenie i możesz je zakończyć. W .zshrc:

bindkey '^L' push-line

Następnie użyj Ctrl+, Laby zawiesić bieżące polecenie i powrócić do niego po uruchomieniu czegoś innego.

Podano kilka innych odpowiedzi, w tym ustawienia, jak zrobić coś podobnego w bash i niektóre spersonalizowane wersje tego wbudowanego w Zsh.

Caleb
źródło
0

Możesz zrobić, Shift-Alt-3aby skomentować bieżącą linię i przejść do następnej. Następnie po naciśnięciu up, Ctrl-e, Deli tadam!

Górnik
źródło