2017-03-20 3 views
2

Einige Male, dass ich einen Befehl habe, drücken Sie Enter, aber dieser Befehl habe ich in irgendeiner Weise geändert und es ist ein langer Befehl, dann erinnere ich mich, dass ich eine Textdatei öffnen muss (zB um einige Informationen zu bekommen, die ich verwenden werde) im Befehl). Also, was ich meistens mache, ist diesen Befehl abzubrechen (Strg + C) und dann öffne die Textdatei, bekomme die benötigten Informationen und tippe den Befehl erneut mit dem eingefügten Wert aus der Textdatei ein. Dies ist für mich nicht besonders effizient, wenn der Server keine GUI hat und ich den vorherigen Befehl nicht kopieren kann, damit ich ihn nicht verliere.Gibt es eine Möglichkeit, zu einem Eingabebereitschaftsbefehl in der Fischschale zurückzukehren, indem Sie einfach eine Tastenkombination drücken?

Also meine Frage ist, Gibt es irgendeine Art von Kombination Tasten, die ich verwenden könnte, um einen Befehl zu speichern bereit zu geben, damit ich nicht verlieren, und ich muss es nicht noch einmal eingeben?

Danke!

Antwort

1

Dies ist derzeit nicht möglich.

Der einfachste Weg, es zu tun, ist wahrscheinlich zu

  • Ändern der cancel Bindung der Kommandozeile bunkern

  • eine Bindung Fügen Sie die verstaute Kommandozeile

Es wäre daran zu erinnern, arbeiten Sie so:

Die Funktion neu zu berechnen l:

function recall_commandline 
    if set -q stashed_commandline 
     commandline -r -- $stashed_commandline 
    end 
end 

In den __fish_cancel_commandline (funced __fish_cancel_commandline verwenden. Sobald Sie zufrieden sind, tun funcsave __fish_cancel_commandline):

set -g stashed_commandline $cmd 
# right before: 
commandline "" 

In den fish_user_key_bindings

bind \cr recall_commandline 

Dies ermöglicht Ihnen, + drücken Sie Strg r die letzte abgebrochen Kommandozeile wieder zu verwenden. Das Erweitern zu mehreren ist nicht-trivial (da "Befehlszeilen" mehrere Zeilen haben können), wie das Hinzufügen der Befehlszeilen zum Verlauf, so dass sie mit den normalen Bindungen aufgerufen werden können.

+0

Vielen Dank für Ihre Antwort. Weißt du, ob neuere Versionen von Fischen das haben werden? – VaTo

+0

Mir ist kein offenes Problem bekannt, daher muss ich sagen, dass es keine Pläne gibt. Sie können eine öffnen und fragen, wenn Sie möchten. – faho

1

Ich habe die folgende Funktion einzuschalten Kommentar/Kommentar- die aktuelle Anweisung:

function toggle-comment-cmd-buffer --description 'Comment/Uncomment the current or every line' 
    set -l cmdlines (commandline -b) 
    if test "$cmdlines" = "" 
     return 
    end 
    set -l cmdlines (printf '%s\n' '#'$cmdlines | string replace -r '^##' '') 
    commandline -r $cmdlines 
    string match -q '#*' $cmdlines[1]; and commandline -f execute 
end 

ich es thusly binden: bind \e\# toggle-comment-cmd-buffer. Auf diese Weise kann ich die aktuelle Anweisung schnell kommentieren und in meine Befehlsgeschichte einfügen, um etwas anderes zu tun. Dann kann ich den Kommentar abrufen und erneut [alt-#] drücken, um die Kommentarzeichen zu entfernen und den Befehl weiter zu ändern.

Ich habe dies in meiner persönlichen Fischkonfiguration eingerichtet, weil ich mich daran gewöhnt hatte, etwas Ähnliches in ksh93 zu machen.

Verwandte Themen