2017-08-06 9 views
2

魚のドキュメントを使用すると、構文https://fishshell.com/docs/current/commands.html#bindに記載されているいくつかのspeciallコマンドを含むは `bind`は、ユーザー定義関数を実行していない

bind <char> cmd1 cmd2 ...

を使用してコマンドのリストを実行することができると言います。

キーバインディングを持つプラグインを書く

は、私が fish_user_key_bindings.fish

bind '&' `backward-delete-char` on_ampersand

を追加しましたが、それはありません行動の結果 - on_ampersand関数が呼び出されなかった、とどちらもbackward_delete_charました。 on_ampersandがなければ、それは動作します。

ドキュメントでは、この現象が発生する可能性については何も示唆していません。

答えて

2

これは魚のバグです。入力バッファ編集コマンドと独自のコマンドを組み合わせることはできません。 https://github.com/fish-shell/fish-shell/issues/3683を参照してください。

回避策はfish_user_key_bindingsに特別に利用できるそれらの機能にアクセスするためのユーザー定義関数でcommandline -f [function]構文を使用することです:

function on_ampersand 
    commandline -f backward-delete-char # or whatever 
    [your code] 
end 
+0

意図したとおり、それが働いているとして、それが本当にバグではありません。しかし、その行動は不十分に文書化されている。ドキュメントを改善するためのパッチは歓迎されます。 –

関連する問題