エディタで前のコマンドを開くときにbashでEsc-vを無効にする方法は?

エディタで前のコマンドを開くときにbashでEsc-vを無効にする方法は?

これは長年私を悩ませてきました。私はその中のキーシーケンスのバインディングを解放しようとしましたが、.inputrcそれをtrueとfalseに設定し、EDITORbashとreadlineのマニュアルページを読み、もう一度読みました。 bashの代わりにkshを使用します。

キーボードシーケンスEscの動作を無効にする方法はv

答え1

自分も知らないようにパターンをbash使っているようです。vi

viパターンでは、 を持つのbashと同じです。vi挿入モードテキストを挿入できる場所(および交換パターンこれはその変形です)コマンドモードxここでは、文字の削除、b1単語の後ろへの移動などのアクションまたはアクションコマンドを入力できます。

次から切り替えました。挿入/置換モード到着コマンドモード、、、、...Escなどのいくつかのコマンドを使用すると、次のように入力できます。iaAs挿入モード~からコマンドモード

存在するコマンドモードv現在行を編集するためのエディタを開きます(このviエディタにはバインドされたコマンドがないため、vksh(bashのベース)は特定のタスクに対応するエディタを自由に使用できます)。

ここでは、キーバインディングスタイルを使用したくないようですvibash/readlineの主キーバインディングはis emacs、is notなので、あなたまたはあなたのシステム管理者がデフォルトでそのモードを有効にするいくつかのカスタマイズをvi導入したようです。vi

これは、システムまたは内部set -o viまたは/etc/bashrcシステム/etc/bash.bashrcのデフォルトのカスタマイズファイルを追加することによって実行できます。bashset editing-mode vi/etc/inputrc

または独自の~/.bashrcまたは~/.inputrc

set -o emacs再び in~/.bashrcまたはset editing-mode emacsin に変更できます~/.inputrc

このemacsパターンには、次のような機能がバインドされています。Ctrl+XCtrl+E

このモードを使用してエディタを作成したくviない場合は、次の以外のウィジェットにウィジェットを割り当てることができます。vvedit-and-execute-command

bind -m vi-command '"v": abort'

または空の文字列なので無視されます。

bind -m vi-command '"v": ""'

関連情報