Ich wechsle sehr oft zwischen mehreren Dateien auf einem Server. Ich werde die folgenden Beispielbefehle nacheinander ausführen:
nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc
Um von einem nano
Befehl zum nächsten zu gelangen, drücke ich derzeit Upund , Backspaceum das letzte Segment des Pfads zu ersetzen. Das Problem dabei ist, dass ich wirklichWirklichfaul.
Gibt es eine Tastenkombination (oder Bashism), die entweder:
- Wird durch den zuletzt verwendeten Pfad ersetzt (mit einem zusätzlichen Bit am Ende)
- Löschen in der aktuellen Zeile (zB nach Drücken von Up) zurück zum letzten
/
Antwort1
Ich glaube, Sie suchen nach der Tastenkombination Alt+ Backspace.
Nach dem Drücken dieser Taste sollte der vorherige oder vorherige Buchstabe Upgelöscht werden ./
space
Antwort2
Um die Readline-Bindung zu erkennen, die ein Wort nach Wunsch rückwärts löscht, können Sie den folgenden Befehl in Ihrem Terminal verwenden:
bind -p | awk '/kill/ && /word/ && /backward/'
Bei einer Standardinstallation von Ubuntu könnte die Ausgabe folgendermaßen aussehen:
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
Die zweite Zeile scheint an dieser Stelle ohne Bedeutung zu sein, also versuchen wir herauszufinden, was die erste Zeile bedeutet. So wie ich es verstehe,backward-kill-word
readline-Funktion, die tatsächlich alle Zeichen löscht, bis das vorherige Sonderzeichen ( /
, ;
, ,
usw.) an die \e\C-h
Tastenfolge gebunden ist. Nun, in dieser Sequenz\e
repräsentiertder EscSchlüssel, \C
- der CtrlSchlüssel, und \C-h
steht für Ctrl+ hwelcheist in diesem Fall gleichwertigMit BackspaceSchlüssel.
Sie suchen also nachEsc+ Ctrl+hTastenkombination, die gleichbedeutend ist mitEsc+Backspaceund welches,Aufgrund des Verhaltens von xterm fungiert der AltSchlüssel als Metazeichen und Metazeichen werden in eine zweistellige Folge umgewandelt, wobei dem Zeichen selbst Folgendes vorangestellt wird Esc(siehe man xterm
).ist äquivalent zuAlt+Backspace.
Wenn es Ihnen nicht gefällt und Sie es weiterhin vergessen, können Sie den folgenden Befehl verwenden, um eine neue Verknüpfung, beispielsweise Esc+ w, für Ihren Zweck zu erstellen:
bind '"\ew": backward-kill-word'
Um diese neue Tastenkombination dauerhaft für alle Befehle festzulegen, die Readline verwenden, fügen Sie Ihrer ~/.inputrc
Datei die folgende Zeile hinzu:
"\ew": backward-kill-word
help -m bind | sensible-pager
Weitere Informationen finden Sie unter.
Antwort3
Eine weitere Tastenkombination ist:
Alt+ Bdann Ctrl+K
Alt + B Move cursor backward one word on the current line
Ctrl + K Clear the line after the cursor
Alt+ Bdann Alt+D
Dadurch wird das letzte Wort entfernt, ohne Sonderzeichen zwischen den Wörtern zu löschen.