Gibt es eine Möglichkeit, STRG-R zu verwenden, nachdem ein Teil des Befehls in Bash eingegeben wurde?
13
In Bash ist der Befehl Ctrl+ rsehr nützlich. Ich gebe Ctrl+ ein rwhateverund durchsucht meinen Verlauf nach Befehlen, die das Wort enthalten whatever. Aber wenn ich tippe whateverund merke, dass ich dieses Wort suchen und Ctrl+ rdrücken möchte, passiert nichts.
Gibt es eine Möglichkeit, eine Taste zu drücken und sie so zu gestalten, als hätte ich Ctrl+ rwhateveranstelle von whateverCtrl+ eingegeben r?
Ich habe folgendes in meinem .inputrc:
"\C-p": history-search-backward
Dies funktioniert jedoch nur, wenn der Zeilenanfang derselbe ist.
Sie können den Verlauf von bash anhand der bereits eingegebenen Informationen durchsuchen.
Angenommen, Sie haben gerade getippt curl -I http://superuser.comund vergessen, zuerst Ctrl+ reinzugeben:
$ curl -I http://superuser.com
Wenn Sie eine i-Suche auf Ihrer Geschichte tun mögen, gehen Sie zu Anfang der Zeile zuerst ( Ctrl+ a), geben Sie i-Suche ( Ctrl+ r) und geben Sie Ctrl+ y. Dies sollte mit dem Inhalt des gesamten Textes suchen, den Sie bereits eingegeben haben:
Wenn Sie all dies mit einem Tastendruck ausführen möchten, können Sie eine einzelne Taste an ein Tastaturmakro binden. Wenn Sie verwenden möchten, sagen Sie F12:
$ bind '"\e[24~":"\C-a\C-r\C-y"'
Das wird für die Sitzung dauern.
Dauerhaft machen
Definieren Sie einfach das Makro in Ihrem ~/.inputrc:
"\e[24~":"\C-a\C-r\C-y"
Beachten Sie, dass wir hier die einfachen Anführungszeichen weglassen .
Ich bin nicht sicher, ob es ein Problem mit meiner Konfiguration ist, aber nachdem ich tippe, c-rfüge ich c-ydort nichts ein. Wenn ich schreibe c-yselbst fügt einfach den Text, so dass ich nicht die beiden Befehle kombinieren ...
skeept
Gehst du zuerst zum Zeilenanfang? (Ca)
hso
1
Du hast recht, ich war nicht am Anfang der Reihe. Jetzt habe ich in meiner .inputrc "\C-xr": "\C-a\C-r\C-y"und es funktioniert sehr schön! Danke für diese Antwort.
6.
Ich denke, es ist das dritte Mal, dass ich dieses control+a control+r control+yDing gegoogelt habe! Danke, diese Antwort ist immer da! :)
Dr. Beco
2
Sparen Sie vier Schläge:
Vermeiden Sie eine Sekunde, Ctrl-Rindem Sie Folgendes zu Ihrer hinzufügen .bashrc(oder zu Ihrer, .inputrcwenn Sie es vorziehen):
Mir ist immer noch nicht klar, warum Cy den Befehl in das Suchfeld einfügt (Ca soll kein "Kopier" -Befehl sein, oder?) Und warum Cw nur das erste Wort einfügt.
Marcus
ja, C-abewegt sich nicht nur, sondern speichert (kopiert) den Inhalt, über den verschoben wurde.
Dr. Beco
Ich kann dieses Verhalten nicht bestätigen (versuchen Sie es einfach mit Ca Cy). Ich denke, es ist wahrscheinlicher, dass in Cr einige Sonderfälle eingebaut sind, aber ich weiß nicht, wo sie dokumentiert sind.
c-r
füge ichc-y
dort nichts ein. Wenn ich schreibec-y
selbst fügt einfach den Text, so dass ich nicht die beiden Befehle kombinieren ..."\C-xr": "\C-a\C-r\C-y"
und es funktioniert sehr schön! Danke für diese Antwort.control+a control+r control+y
Ding gegoogelt habe! Danke, diese Antwort ist immer da! :)Sparen Sie vier Schläge:
Vermeiden Sie eine Sekunde,
Ctrl-R
indem Sie Folgendes zu Ihrer hinzufügen.bashrc
(oder zu Ihrer,.inputrc
wenn Sie es vorziehen):Dies wird Karte ALT-R zu CTR-A CTR-R CTR-Y CTR-R
Beschreibung:
\C-xr
( CTR-X CTR-R )quelle
C-a
bewegt sich nicht nur, sondern speichert (kopiert) den Inhalt, über den verschoben wurde.