Próbowałem nauczyć się skrótów klawiaturowych dla powłoki na macOS, ale kiedy próbowałem użyć ALT+ B, to nie działało.
Jak odkrywasz, konfigurujesz i używasz skrótów klawiszowych w powłoce? Pomocne będą wszelkie ściągawki.
Próbowałem nauczyć się skrótów klawiaturowych dla powłoki na macOS, ale kiedy próbowałem użyć ALT+ B, to nie działało.
Jak odkrywasz, konfigurujesz i używasz skrótów klawiszowych w powłoce? Pomocne będą wszelkie ściągawki.
Odpowiedzi:
Jednym ze sposobów radzenia sobie z sekwencjami klawiszy „meta”, które nie działają na terminalu OS X, jest przypisywanie określonych sekwencji znaków do poszczególnych naciśnięć klawiszy. Dla osób z klawiaturami spoza USA jest to często lepsze rozwiązanie niż ustawienie „Użyj opcji jako meta” wspomniane w komentarzach do innych odpowiedzi. (Wiele międzynarodowych klawiatur Mac jest zasadniczo bezużytecznych do prac programistycznych bez klawisza Option / alt, ponieważ niektóre krytyczne znaki są w przeciwnym razie niedostępne. Na przykład nie ma #klawiatury brytyjskiej Mac.)
Aby słowo-lewo i słowo-prawo działało w trybie bash, użyłem sekcji „Klawiatura” w Ustawieniach w Terminalu. Możesz nakazać mu generowanie określonych sekwencji kodu, gdy zostaną wykonane określone naciśnięcia klawiszy. Skonfigurowałem mój tak, że alt+ ◀generuje \033b
(tak naprawdę dwa znaki: Esc, a następnie mała litera b) i alt+ ▶generuje \033f
(tj Esc f
.). Pozwala to używać klawiszy strzałek z wciśniętym klawiszem opcji, aby uzyskać zachowanie słowa lewo i prawo.
To, czego jeszcze nie opracowałem, to jak zdobyć Escklucz do pracy - teoretycznie powinieneś być w stanie użyć go do sekwencji „meta”, ale wydaje się, że nie działa. (Więc wpisanie Esc+ bpowinno cofnąć się o jedno słowo.)
Jeśli masz układ klawiatury w USA lub inną klawiaturę, w której Apple uznał za stosowne, aby zapewnić wszystkie klawisze, których faktycznie potrzebujesz, to jak sugerują inni, „Użyj opcji jako klawisza meta” (także w sekcji Klawiatura w ustawieniach terminalu) jest prawdopodobnie lepszym wyborem, ponieważ będziesz mógł uzyskać dostęp do dowolnej kombinacji klawiszy meta. Po włączeniu Alt+ bdziała zgodnie z oczekiwaniami.
Terminalem Mac OS X jest BASH, oto kilka skrótów BASH:
Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + L Clears the Screen, similar to the clear command
Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H Same as backspace
Ctrl + R Let’s you search through previously used commands
Ctrl + C Kill whatever you are running
Ctrl + D Exit the current shell
Ctrl + Z Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W Delete the word before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor
Alt + F Move cursor forward one word on the current line
Alt + B Move cursor backward one word on the current line
Tab Auto-complete files and folder names
Ten, którego szukasz, to Ctrl+ H. (Jest to to samo, co naciśnięcie klawisza Backspace)
Jeśli szukasz postaci ucieczki, aby cofnąć się o jedną postać, szukasz \b
. Jak w:
$ echo -e "one two\b\b\b\b three" # Will echo "one three"
Wypróbuj SS64 . Ta strona jest idealna do odniesienia do wiersza poleceń.
Skróty klawiaturowe CLI w systemie OS X zaczerpnięte z tej strony SS64 .
Bash Keyboard Shortcuts
Moving the cursor:
Ctrl + a Go to the beginning of the line (Home)
Ctrl + e Go to the End of the line (End)
Ctrl + p Previous command (Up arrow)
Ctrl + n Next command (Down arrow)
Alt + b Back (left) one word
Alt + f Forward (right) one word
Ctrl + f Forward one character
Ctrl + b Backward one character
Ctrl + xx Toggle between the start of line and current cursor position
Editing:
Ctrl + L Clear the Screen, similar to the clear command
Ctrl + u Cut/delete the line before the cursor position.
Alt + Del Delete the Word before the cursor.
Alt + d Delete the Word after the cursor.
Ctrl + d Delete character under the cursor
Ctrl + h Delete character before the cursor (backspace)
Ctrl + w Cut the Word before the cursor to the clipboard.
Ctrl + k Cut the Line after the cursor to the clipboard.
Alt + t Swap current word with previous
Ctrl + t Swap the last two characters before the cursor (typo).
Esc + t Swap the last two words before the cursor.
Ctrl + y Paste the last thing to be cut (yank)
Alt + u UPPER capitalize every character from the cursor to the end of the current word.
Alt + l Lower the case of every character from the cursor to the end of the current word.
Alt + c Capitalize the character under the cursor and move to the end of the word.
Alt + r Cancel the changes and put back the line as it was in the history (revert).
Ctrl + _ Undo
TAB Tab completion for file/directory names
For example, to move to a directory 'sample1'; Type cd sam ; then press TAB and ENTER.
type just enough characters to uniquely identify the directory you wish to open.
History:
Ctrl + r Recall the last command including the specified character(s)
searches the command history as you type.
Equivalent to : vim ~/.bash_history.
Ctrl + p Previous command in history (i.e. walk back through the command history)
Ctrl + n Next command in history (i.e. walk forward through the command history)
Alt + . Use the last word of the previous command
Ctrl + s Go back to the next most recent command.
(beware to not execute it from a terminal because this will also launch its XOFF).
Ctrl + o Execute the command found via Ctrl+r or Ctrl+s
Ctrl + g Escape from history searching mode
Process control:
Ctrl + C Interrupt/Kill whatever you are running (SIGINT)
Ctrl + l Clear the screen
Ctrl + s Stop output to the screen (for long running verbose commands)
Ctrl + q Allow output to the screen (if previously stopped using command above)
Ctrl + D Send an EOF marker, unless disabled by an option, this will close the current shell (EXIT)
Ctrl + Z Send the signal SIGTSTP to the current task, which suspends it.
To return to it later enter fg 'process name' (foreground).
Emacs mode vs Vi Mode
All the above assume that bash is running in the default Emacs setting, if you prefer this can be switched to Vi shortcuts instead.
Set Vi Mode in bash:
$ set -o vi
Set Emacs Mode in bash:
$ set -o emacs
Uwaga: Aby użyć skrótów klawisza Alt >> Otwórz Preferencje terminala >> Karta Ustawienia >> Klawiatura >> Zaznacz „Użyj opcji jako klawisza meta”
Chcesz sekcji READLINE strony bash(1)
man:
man 1 bash
/^READLINE
Naprawdę nie ma potrzeby mapowania optionklucza na meta w terminalu OS X option+ left-arrow, option+ , + right-arrowzastępuje odpowiednio Alt+ Fi Alt+ B. Inne powszechnie używane skróty działają tak, jak zostały zaimplementowane na innych platformach. escmoże emulować oryginalną funkcjonalność Altklawisza, ale może być trochę niewygodne, escgdy używa się go jako modyfikatora, a ponadto nie można przytrzymywać esci wielokrotnie naciskać Blub F, trzeba go puścić i za każdym razem z powrotem naciskać.
TL; DR
option+ left-arrow= cofnij jedno słowo
option+ right-arrow= przewiń jedno słowo
Możesz być zainteresowany moim profilem: https://github.com/lingtalfi/mac-terminal-shortcuts
Zapewnia następujące (intuicyjne) skróty:
ALT-left: move one word backward
ALT-right: move one word forward
CTRL-left: move to the beginning of the line
CTRL-right: move to the end of the line
ALT-backspace: kill one word backward
ALT-del: kill one word forward
ALT-up: set word after cursor to uppercase
ALT-down: set word after cursor to lowercase
CTRL-backspace: Same as ALT-backspace
CTRL-del: Same as ALT-del
home: move to the beginning of the line
end: move to the end of the line