コマンドを入力するときにviモードを設定する方法は?

コマンドを入力するときにviモードを設定する方法は?

set -o viコマンドラインでbashをviモードに切り替えることができることを知っています。しかし、時にはviモードが必要な場合もあり、通常モード(emacsモード?)を使い続けたいし、すでに新しいコマンドを入力しているときにviモードに切り替えることができればいいと思います。

CLIコマンドを実行せずにviモードを設定する方法はありますか?

たとえば、端末アプリケーションで開くことができます。 Mac OS XでiTerm2を使用していますが、すぐにモードを切り替えるコマンドが見つかりません。

どんな提案がありますか?

ベストアンサー1

2つのReadline関数をバインドすることで、2つの入力モードを動的に切り替えるようにキーの組み合わせを制御vi-insertion-modeできます。emacs-editing-mode

以下のコードは最初にモードにバインドされ、次にvi-insertion-modeCtrl+XCtrl+T同じemacs-standardキーの組み合わせですが)モードにemacs-editing-modeバインドされます。Ctrl+XCtrl+Tvi-insert

bind -m emacs-standard '"\C-x\C-t": vi-insertion-mode'
bind -m vi-insert      '"\C-x\C-t": emacs-editing-mode'

あまりにも多くの作業を中断することなく、自分に適した制御シーケンスを使用できます。ここで使用されているシーケンスはデフォルトでバインド解除されています。

おすすめ記事