私はそれを私のホームフォルダからファイルを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
- 私の
INPUTRC
ファイルには次のものが含まれています。
set echo-control-characters off
set completion-ignore-case on
しかし、どちらも尊重されませんでした。
~/.inputrc
上記の2行を含むファイルを作成すると、両方が機能します。~/.inputrc
myを指すファイルを生成する場合、/home/foo/bin/.inputrc
どちらの場合も問題ありません。ただし、
~/.inputrc
ファイルを削除してINPUTRC
再び単独で使用すると、両方の状況が機能しなくなります。
だから、
- 私が使用しているbashのバージョンに問題がありますか?
- bashが名誉かどうかはどうすればわかりますか
INPUTRC
? - この問題をデバッグすることをどのようにお勧めしますか?
修正する:
実際の原因を見つける方法を提供した@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を使用している人がいる場合は試してみてください。ありがとうございます。