bashスクリプトを使用してbash readlineの状態を検出するには?

bashスクリプトを使用してbash readlineの状態を検出するには?

例えば。

if [ 'readline is vi-command' ]; then
  echo 'normal mode'
else
  echo 'insert mode'
fi

私はこれを行う方法を本当に知らず、マニュアルページに何も見つからないようです。それとも可能ですか?

ベストアンサー1

vi-append-eol(デフォルトA)コマンドモードでのみバインドします。したがって、現在バインドされているかどうかを照会して、現在のモードを確認できます。

if LC_ALL=C bind -q vi-append-eol | grep -q 'not bound'; then 
  echo 'insert mode'
else
  echo 'normal mode'
fi

LC_ALL=C他のロケールでは、「unbound」が異なる言語で書かれているので使用されます。

もちろん、特別なことはなくvi-append-eol、モードの1つだけにバインドされる他の作業がたくさんあるので、そのうちの1つを使用できます。

おすすめ記事