いくつかのフォーラムでset -o vi
私の.bashrc
ファイルでこれが起こりました。今日私set editing-mode vi
に追加するオプションを見ました.inputrc
。
グーグルしてみると、どちらも同じように見えますが、2つの間に重要な違いがありますか?
答え1
.inputrc
(および/etc/inputrc
)はGNUライブラリの設定ファイルですreadline
。 bashで開発された2つは現在Chet Rameyによって管理されていますが、tcsh、ksh93、zsh、yashなどの他のアプリケーションには独自の行エディタがあることがよくありますreadline
。gdb
python3
bc
rc
bash
また、コマンドを介して独自の行エディタのreadline設定を変更することもできますbind
。したがって、次のようにすることもできます。
bind 'set editing-mode vi'
set -o vi
-styleキーバインディングを使用するように行エディタを設定するKornシェルの方法ですvi
。 POSIX 仕様はsh
Korn シェルに基づいているため、sh
Korn シェルでキーバインディングを構成する POSIX 方式でもあります。
また、bash
POSIX互換シェルを意図したため、ラインエディタモードをスタイル(または開始から始まる)に変更するvi
オプションセットset -o
(とは逆)もありますが、これは最終的に同じことを行います。shopt
vi
bash
bash -o vi
また、bash
cshとtcshから多くの機能を派生しています。では、tcsh
を使用してキーバインディングのスタイルを切り替えることができますvi
。これもサポートされますが、サポートされません。emacs
bindkey -v
bindkey -e
zsh
bash
答え2
これらの設定は、を含むがこれらに限定されず、.inputrc
使用されるすべてのアプリケーションに適用されます。libreadline
bash
set -o vi
にのみ.bashrc
影響しますbash
。