Shell-Script

如何使用 bash 腳本檢測 bash readline 的狀態?

  • February 27, 2021

例如;

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

我真的不知道如何做到這一點,我似乎也無法在手冊頁上找到任何東西,或者根本不可能?

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之所以使用,是因為在其他語言環境中“未綁定”將用另一種語言編寫。

當然,沒有什麼特別的vi-append-eol,還有一堆其他的動作只綁定在其中一種模式下,任何一種都可以使用。

引用自:https://unix.stackexchange.com/questions/515691