inputrcのbashrcで関数を呼び出す

inputrcのbashrcで関数を呼び出す

私はArch Linux(4.13.11)を使用しており、以下を使用し.bashrcてファイルを検索するカスタム機能があります。富士次に、デフォルトエディタを使用してファイルを開きます。

# Search a file with fzf inside a Tmux pane and then open the file in an editor
fzf_then_open_in_editor() {
  local file=$(fzf-tmux)
  # Open the file if it exists
  if [ -n "$file" ]; then
    # Use the default editor if it's defined, otherwise Vim
    ${EDITOR:-vim} "$file"
  fi
}

.inputrcシェルでVimと同様のキーバインディングを使用するように設定しました。

set editing-mode vi

可能であれば、コマンドモードでCtrl+を押して関数oを呼び出すことができますfzf_then_open_in_editor

頑張った

set keymap vi-command
"\C-o": fzf_then_open_in_editor

しかし、それはうまくいきませんでした。

.inputrc定義された関数のキーバインディングをどのように生成しますか.bashrc

ベストアンサー1

このフォームはkey: functionreadline組み込み関数のみを受け入れます。ご存知のように、テキストを入力するには、引用符で囲む必要があるいわゆるマクロが必要ですkey: "my macro\r"。通常、コマンドプロンプトですでに挿入モードになっているため、挿入コマンドで開始する理由を理解できません。

関数を呼び出すには、オプションと一緒にシェルコマンドバインディングを使用します-x。このバインディングをに入れる方法はありませんが、~/.inputrc次のものを入れることができます.bashrc

bind -x '"\C-o": fzf_then_open_in_editor'

おすすめ記事