UbuntuのbashはINPUTRCをサポートしていません。

UbuntuのbashはINPUTRCをサポートしていません。

私はそれを私のホームフォルダからファイルをINPUTRC移動するために使用します。.inputrc以前は動作していましたが(私のようにGNU bash, version 5.1.4)bashではこれ以上尊重されversion 5.1.16ませINPUTRCん。

$ which $SHELL
/usr/bin/bash

$ $SHELL --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
. . .

$ env | grep INPUTRC
INPUTRC=/home/foo/bin/.inputrc

$ ls ~/.inputrc
ls: cannot access '/home/foo/.inputrc': No such file or directory
  1. 私のINPUTRCファイルには次のものが含まれています。
set echo-control-characters off
set completion-ignore-case on

しかし、どちらも尊重されませんでした。

  1. ~/.inputrc上記の2行を含むファイルを作成すると、両方が機能します。

  2. ~/.inputrcmyを指すファイルを生成する場合、/home/foo/bin/.inputrcどちらの場合も問題ありません。

  3. ただし、~/.inputrcファイルを削除してINPUTRC再び単独で使用すると、両方の状況が機能しなくなります。

だから、

  1. 私が使用しているbashのバージョンに問題がありますか?
  2. bashが名誉かどうかはどうすればわかりますかINPUTRC
  3. この問題をデバッグすることをどのようにお勧めしますか?

修正する:

実際の原因を見つける方法を提供した@meuhに感謝します。 (質問を投稿する前に)私が見つけたように、これはbind -f /home/foo/bin/.inputrc端末が完全にロックされ、「^ C」でのみ応答しますreset。それを入力してEnterキーを押しても問題は解決しませんが、私の2行のバージョンでは問題はbind -f解決します。おそらく私の古い.inputrcファイル(> 20年前)は新しいbashに問題を引き起こし、INPUTRCを使用すると〜/.inputrcよりもはっきりと問題が発生する可能性があります。

試行錯誤を経て、次のように問題の原因を見つけました。

$ cat .inputrc.nok
set editing-mode emacs
set horizontal-scroll-mode Off
set keymap emacs-meta
set echo-control-characters off
set completion-ignore-case on

それから、すぐに、

  • bind -f .inputrc.nok端末セッションをロックして
  • それを指すことはINPUTRC何の効果もありません。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu Jammy Jellyfish (development branch)
Release:  22.04
Codename: jammy

$ apt-cache policy bash
bash:
  Installed: 5.1-6ubuntu1
  Candidate: 5.1-6ubuntu1
  Version table:
 *** 5.1-6ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status

アップデート2:

実際、これはUbuntu Jammyの問題だけではなく、Ubuntu 18.04.1に戻ってまったく同じ動作を見つけました。しかし、@Kusalanandaはすべてが大丈夫ですので、Ubuntuを使用している人がいる場合は試してみてください。ありがとうございます。

ベストアンサー1

おすすめ記事