2016-05-09 5 views
0

configure a user binding(バージョン2.2.0)するためには、fish_user_key_bindings機能である必要があります魚のCtrl-Enterをバインドする方法は?

function fish_user_key_bindings 
    bind \n 'commandline -f accept-autosuggestion execute' 
end 

これが正常に動作します。

function fish_user_key_bindings 
    bind \c\n 'commandline -f accept-autosuggestion execute' 
end 

をこれは動作しません:私はappropriate modifierを使用することにより、を入力しCtrlキー + にこの結合を拡大したい

を入力します((カーソルまで)現在の提案を使用していますただしCtrl + と同様にを入力します(修飾語を含むアクションは考慮されていないかのように)

+1

すべての端末が入力とctrl-enterを区別するわけではありません。どの端末アプリを使用していますか? –

+0

@ridiculous_fish:私はputty/kittyとmobaxtermの両方でこれを試しました – WoJ

答えて

2

バインド\c\nは、\nが既に制御文字であるため意味を持ちません。制御文字に2度目に制御修飾子を適用しても効果はありません。 \n\cJの別名にすぎません。あなたがしようとしているのは、\c\cJへのバインディングに相当します。 [Ctrl] [Enter]をバインドする唯一の方法は、そのキーの組み合わせに対して一意のシーケンスを送信するように端末を設定することです。

PS現在のgitヘッドソースを取得した場合は、make fish_key_readerとすれば、さまざまなキーの送信に関する多くの情報を表示する便利なプログラムを構築できます(ただし、Iから数分待つ必要があります私はhttps://github.com/fish-shell/fish-shell/pull/3012をマージする必要があるためこれを入力してください)。魚2.3.0のよう(現在ベータテスト中)

P.P.S.は、ttyドライバは、もはや自動的にキーを入力するには\n(別名\cJ)に送信する(別名\cM\rを変換しません。

関連する問題