inputrcは16以下のようにUbuntu 18では動作しません。

inputrcは16以下のようにUbuntu 18では動作しません。

私は.inputrcユーザーディレクトリに簡単なディレクトリを作成し、以下を追加しました。

"e[A": history-search-backward
"e[B": history-search-forward
"e[C": forward-char
"e[D": backward-char

バッシュリロード

exec bash -l

その後、矢印キーを使用してbash履歴を簡単にナビゲートできます。

これで、Ubuntu 18では同じように動作しません。 inputrcファイルを読んでいないかどうかわかりません。他の人も同じ問題を抱えて解決策を見つけましたか?

私もこの答えを試しました~/.inputrc ファイルソースが正しくありません。

bind -f  ~/.inputrc

しかし、これはまだ私には効果がありません.. :/

答え1

私の考えでは、キーバインディングにバックスラッシュ「\」が必要なようです。しかし、それがあなたに必要なものかどうかはわかりません。私はDebianを使用しています。

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

以下は、バインディングがアクティブであることを確認する方法の例です。

  • 履歴リバース検索が設定されていることを確認してください

    $ bind -p|grep history-search-backward
    # history-search-backward (not bound)
    
  • どのコマンドに「\ e [A」キーシーケンスがあるかをテストしてください。

    $ bind -p|grep "\\e\[A"
    "\e[A": previous-history
    
  • ~/.inputrcに新しいキーバインディングを作成して再ロードします。

    $ echo '"\e[A": history-search-backward' >> ~/.inputrc
    $ bind -f ~/.inputrc
    
  • 過去の履歴検索がバックに設定されていることをもう一度確認してください。

    $ bind -p|grep history-search-backward
    "\e[A": history-search-backward
    

関連情報