コマンドモードにデフォルト設定するBash viモード構成


14

最初に挿入モードではなくコマンドモードになるようにbash viモードを構成することは可能ですか?私はあまりにも多くを押す必要があります。zshでこれを指定する可能性があるようですが、bash / readlineでこれを行う方法を見つけていません。Esc

回答:


2

標準のGNU Readline Libraryを使用することは不可能だと思います。

ただし、xdotoolを使用して簡単なハックを行い、同じ効果を達成できる場合があります。キー押下.bashrcをシミュレートするコマンドをに追加Escapeすると、用語がコマンドモードで開かれます。

xdotool key Escape

--delayスイッチで少し遅延させて、プロンプトが変更されないようにすることができます...

これは予想以上にフラストレーションを招く可能性が高いことに注意してください。端末は入力を受け付けるように設計されています。(わずかではあるが)それを破ることは、そのような良いアイデアを証明しないかもしれない...


1

私はそれを取り戻します、これはカーソルの動きでは動作しません。それは動作しますが、それらを取り出した場合、面白い動作で:PS1="$PS1 ^[


PS1プロンプトを変更します。

PS1="test $ \[^[[s^[^[[u\]"

どこに^[リテラルエスケープ(Ctrl+ V Esc)があります。

途中のエスケープはコマンドモードに変更され、^[[sand ^[[uエスケープはカーソル位置を保存および復元します。それなしで、私はいくつかの面白い行動があったことを発見しました。



-1

試してみる set +o vi

set -o vi 再び編集モードになります。

http://tldp.org/LDP/abs/html/options.html


それは機能しません:viモードをオフにします...
jasonwryan

ええ、試しました。正しい。私はこれを考えることができます-vimを使用して、Escキーのcmapを変更します(vimのヘルプモード切り替えを参照してください)。のデフォルトの同等のマッピングEscCtrl + ]
Nikhil Mulley

私のksh88でも動作しません。
ラーム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.