Eingabe bis zum letzten Schrägstrich löschen

Eingabe bis zum letzten Schrägstrich löschen

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 nanoBefehl 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-wordreadline-Funktion, die tatsächlich alle Zeichen löscht, bis das vorherige Sonderzeichen ( /, ;, ,usw.) an die \e\C-hTastenfolge gebunden ist. Nun, in dieser Sequenz\e repräsentiertder EscSchlüssel, \C- der CtrlSchlüssel, und \C-hsteht 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 ~/.inputrcDatei die folgende Zeile hinzu:

"\ew": backward-kill-word

help -m bind | sensible-pagerWeitere 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.

verwandte Informationen