Bindung zu Fischen hinzufügen, die die Zeichenfolge nicht automatisch ausführen?


1

Wie richte ich eine Schlüsselbindung in fish ein, damit fish versteht, dass die Bindungszeichenfolge nicht ausgeführt wird, nachdem sie an die Befehlszeile angehängt wurde, sondern nur als Zeichenfolge an die Befehlszeile angehängt wird.

Ich möchte eine Bindung einrichten, an die | less angehängt wird, indem ich d. h. Alt + Y drücke.

Es scheint, dass fish standardmäßig den Befehl zum automatischen Ausführen versteht.

Das heißt.Wenn ich ls in die Befehlszeile eingebe und dann Alt + Y drücke, sollte der Befehl nur so ausgeführt werden, dass er wie folgt aussieht: ls | less, aber immer noch nicht ausgeführt.

Ich versuche so etwas

bind \ey " \| less"

Aber Fisch akzeptiert meine syntax nicht

2

To append the |less at the end of the command line it's already a default function in fish, using the Alt-p

http://fishshell.com/user_doc/index.html#editor

You can create a function to do that if you prefer:

function __fish_less
       commandline -i -- "|less"
end

bind \ey __fish_less

I'm not sure if you need to escape the | make some tests...

EDIT:

Regarding append, the commandline help say:

* -a or --append do not remove the current commandline, append the specified string at the end of it
* -i or --insert do not remove the current commandline, insert the specified string at the current cursor position
* -r or --replace remove the current commandline and replace it with the specified string (default)

So to append instead of inserting a command, I guess you should use -a