Angenommen, ich habe einen langen Befehl im Mac OSX-Terminal geschrieben, d. H.
say "Hello, how are you? I am good thank you. How is it going with you? Fine, thanks"
und jetzt möchte ich das Wort ändern Hellozu Hi.
Dazu muss ich jetzt die linke Tastaturtaste gedrückt halten (oder gedrückt halten), bis der "Cursor" das Ende des Wortes erreicht Hello, und es dann löschen. Die übliche Technik zum Halten der Option funktioniert nicht wie in den meisten anderen OS X-Anwendungen.
Gibt es eine Möglichkeit, stattdessen jeweils ein Wort zu überspringen (oder eine andere kürzere Möglichkeit, den Cursor dorthin zu bringen)?
Die Befehlszeilenbearbeitung ist eine Funktion Ihrer Shell, nicht von Terminal . Wahrscheinlich ist Ihre Shell Bash und wahrscheinlich ist der Befehlszeilen-Bearbeitungsstil auf "Emacs" eingestellt.
Hier sind einige der Tastenkombinationen im Emacs-Stil, die Sie möglicherweise nützlich finden:
Ca: beginning-of-line
Ce: end-of-line
Mf: forward-word
Mb: backward-word
CD: delete-char
Md: kill-word(lösche das nächste 'Wort')
M-DEL: backward-kill-word
C- x bedeutet Control+ x, also ist Ca Control+ a.
M- x bedeutet Meta+ x, aber es gibt wahrscheinlich keine Meta-Taste auf Ihrer Tastatur. Sie können stattdessen ESC x verwenden (dh Escapedann x). Das Terminal verfügt über eine Einstellung zum automatischen Senden von ESC, bevor Tasten gedrückt Optiongehalten werden. Mit dieser Funktion wird die erweiterte Zeichenbehandlung deaktiviert, die Mac OS X normalerweise bei Verwendung des Modifikators Option bietet. Also, wenn Sie einige erweiterte Zeichen verwenden und haben wollen Option+ xsenden ESC x , dann können Sie diese aktivieren Terminal - Option.
In Ihrem Beispiel gibt es viele Möglichkeiten, zu „Hallo“ zu wechseln:
Suche nach "Hallo": Cr H ello Cj (oder ESC)
In normalen Emacs würden Sie einfach RET ( Return) verwenden, um die Suche am aktuellen Speicherort zu beenden und zur Bearbeitung zurückzukehren. In Bash führen die Standardbindungen jedoch dazu, dass RET (dh Cm) immer die aktuelle Zeile ausführt, selbst wenn eine inkrementelle Suche aktiv ist. Der Cj / ESC-Teil ist also eine Abweichung von normalen Emacs.
Zum Anfang der Zeile springen und vorwärts gehen: Ca Mf Cf (oder →)
Springe zum Anfang der Zeile und bewege dich dann mit Worten: Ca Mf Mf Mb
Verwenden Sie Mb häufig (nur dann wirklich machbar, wenn Sie Option Meta zuordnen).
Es gibt auch verschiedene Möglichkeiten, um den gewünschten Ersatz zu erreichen:
Löschen Sie das Wort und ersetzen Sie es: Md H i
Zeichen löschen und ersetzen: Cd Cd Cd Cd Cd H i
Gehen Sie an „H“ vorbei und löschen Sie die folgende Arbeit. Ersetzen Sie sie: Vgl. Md i
Gehen Sie an „H“ vorbei und löschen Sie die verbleibenden Zeichen. Ersetzen Sie sie: Cf Cd Cd Cd Cd i
Wenn Sie am Ende des Wortes stehen geblieben sind (möglicherweise über Ca Mf Mf), können Sie M-DEL H i verwenden.
Ich bin mir nicht sicher, ob dies offensichtlich ist oder nicht. Ich habe eine Minute gebraucht, um es herauszufinden, aber ich bin auf einem MBP ohne Meta-Schlüssel und verwende eine Standard-Terminal-Konfiguration. Um mich bei Wörtern vorwärts und rückwärts zu bewegen, kann ich Esc und dann F oder Esc und dann B drücken. Ich wollte das nur erwähnen, weil ich oben versucht habe, Esc + x und dann f oder b zu drücken ...
CWD
Gibt es eine Möglichkeit, die Umgebung oder die Shell so zu ändern, dass ich Strg- oder Fn + Pfeiltasten drücken kann, um meiner IDE zu entsprechen?
Die Standard-Readline-Bindung für forward-wordist Meta-F ( bash(1)Manpage, Abschnitt READLINE , Unterabschnitt Befehle zum Verschieben ). Ich bin mir nicht sicher, was Meta in OS X bedeutet. Option vielleicht.
<kbd>
Elemente. Eine Teilmenge von HTML ist hier im Markup zulässig . Das Erscheinungsbild ist auf die ortslokale Gestaltung des Tags zurückzuführen (Hintergrund, Rahmenfarbe, Rahmenstil, Rahmenbreite usw.). Sie können das Quell-Markup meines Beitrags überprüfen ("Quelle anzeigen" auf dieser Seite ). Siehe meta.stackexchange.com/questions/5527 , obwohl der ausgefallene Stil in MSO deaktiviert ist: meta.stackexchange.com/questions/1939/#23571set -o vi
Ihre .bashrc! gnu.org/software/bash/manual/html_node/…Die Standard-Readline-Bindung für
forward-word
ist Meta-F (bash(1)
Manpage, Abschnitt READLINE , Unterabschnitt Befehle zum Verschieben ). Ich bin mir nicht sicher, was Meta in OS X bedeutet. Option vielleicht.quelle