Podczas pisania długiego polecenia w wierszu polecenia * nix i konieczności powrotu do pierwszego znaku, aby dodać coś na początku (na przykład a nohup
, gdy zdasz sobie sprawę, że proces będzie długi, lub a sudo
, gdy zdajesz sobie sprawę, że potrzebujesz uprawnień roota), powrót kursora do pierwszego znaku może zająć dużo czasu ...
Czy istnieje skrót, który pozwala skakać prosto tam?
Używam Maca, więc Homenie ma opcji
linux
command-line
unix
keyboard-shortcuts
cursor
clami219
źródło
źródło
sudo
jest wpisaniesudo !!
. Zostanie!!
zastąpione poprzednim poleceniem.Odpowiedzi:
Ctrl+Apowinno działać. Ctrl+Eodpowiada końcowi wiersza poleceń.
źródło
To zależy od danej powłoki.
Niektóre powłoki (jak AT&T ksh88) praktycznie nie oferują edycji linii wejściowych.
W powłokach implementujących
vi
edycję trybu (być może trzeba to włączyć za pomocąset -o vi
), odbywa się to poprzez naciśnięcie Esc(aby przełączyć z trybu wstawiania), a następnie 0przeskoczenie na początek linii lub $skok na koniec linii. Następnie ponownie wejdź w tryb wstawiania, naciskając i- kursor pozostanie tam, gdzie jest - lub a- kursor przesunie się w prawo, aby dołączyć tekst.vi
Tryb edycji został ostatnio nakazany przez standard POSIX.O wiele bardziej powszechny
emacs
tryb edycji (dzięki bogom, nie ma to nic wspólnego z edytorem-emulatorem-systemem operacyjnym Emacsa) wykorzystuje się Ctrl-Ado przeskakiwania na początek linii i Ctrl-Eprzeskakiwania do końca linii. Ten tryb wymaga działaniaset -o emacs
na wielu powłokach (przede wszystkim AT&T ksh93), ale jest domyślnie włączony w mksh i GNU bash.Większość nowoczesnych powłok obsługiwać zarówno
emacs
ivi
trybów. (Oba te tryby wymagają tty do działania.)W wielu powłokach można dostosowywać skróty klawiszowe; zwykle dla
emacs
trybu, chociaż niektóre powłoki pozwalają również dostosować przypisywanie klawiszy dlavi
trybu. Jeśli masz klucz, do którego wolisz go przypisać, najpierw musisz dowiedzieć się, jakie sekwencje klawiszy produkuje (na przykład w moim systemie Alt-CursorLeftprodukuje Esc+[+1+;+3+D(^[[1;3D
;^X
jest Ctrl-Xi^[
jest Esc), więc mogę wpisać coś w rodzajui zmieni to przypisanie klawiszy, w zależności od powłoki. Zazwyczaj można je zachować w pliku startowym (
~/.mkshrc
,~/.kshrc
) lub, w przypadku GNU bash, w~/.inputrc
. Zauważ, że nie wszystkie powłoki obsługują powiązanie wszystkich kluczy we wszystkich wersjach.Zazwyczaj można dowiedzieć się, jakie znaki generuje klucz, po prostu uruchamiając
cat
powłokę, wpisując klucz i obserwując. Następnie naciśnij^C
( Ctrl-C), aby przerwaćcat
.źródło
^D^D
wciążPróbowałeś już klucza do domu? Korzystam z MobXterm, aby połączyć się z Linuksem i używam zarówno klawisza Home, jak i End na klawiaturze, aby przejść do pierwszego lub ostatniego znaku polecenia.
źródło
Jeśli przeszedłeś w
vi
tryb, za pomocąset -o vi
, możesz nacisnąć Esci albo Ialbo, Aaby wprowadzić tekst na początku lub na końcu linii. Lub jeśli chcesz tylko przesunąć kursor, to ^i $.źródło
W trybie emacsa (przełączanym przez:) jest
set -o emacs
to poprzez naciśnięcie:W trybie vi (przełączanym przez
set -o vi
:) w trybie komend ( Esc), naciskając:Zobacz też:
źródło