この質問は回答。この場合、特に次の部分は理解できません。
Ctrl-Wこの点で、その動作はbash(readline)/ ksh / zsh emacsモードよりもemacsに近いが、前の単語(werase、viでも))を持つターミナルドライバの組み込みラインエディタ(通常モード)から外れます。
ここでは、完全に異なる2つのプログラム、エディタではなくシェルについて話しています。シェルがいくつかのエディタモードにあるとはどういう意味ですか?
PS:私がシェルとは何か、そして基本的な編集にvimを使う方法を理解しているという前提で答えることができます。
ベストアンサー1
「vi」モードでは、viエディタの行と同様に、現在のシェルプロンプトで編集/検索できます。一行のテキストファイルと考えてください。同様に、「emacs」モードでは、(特定の)Emacsショートカットを使用して現在のコマンドラインを編集/検索できます。
はい
たとえば、viモードでは、bashで次のことを行うことができます。
$ set -o vi
$ ls hello world
<ESC>
bbdw # results in
$ ls world
Emacsモードでは、Ctrl+およびその他のキーを押してA行の先頭に移動できます(vi:Ctrl+ [、0またはESC、0)。set -o emacs
Emacsモード(bash、ksh、zshなど)をオンにすることができます。
読書船
多くの対話型コマンドラインプログラム(例:強く打つ) 使用読書船図書館。したがって、1つの場所でviまたはemacsを使用するように入力モードやその他のオプションを設定できるため、readlineを使用するすべてのプログラムはまったく同じ編集/検索インターフェイスを持つことになります。
たとえば、私のreadline設定は次のようになります。
$ cat ~/.inputrc
set editing-mode vi
set blink-matching-paren on
例えば扱いにくい/変化の多く私が知っている限り、readlineは使用されていませんが、vi / emacsモードもサポートされています。これはbash / readlineモードと非常によく似ています。
もちろん、コマンドラインシェルのvi / emacsモードは、完全なエディタ機能セットのサブセットにすぎません。すべての機能がコマンドラインシェルに適しているわけではなく、一部の機能のサポートは他の機能よりも複雑です。
正式モード
インタラクティブなコマンドラインシェルのvi / emacsモードが「発明」される前に、シェルは次のものを使用しました。正式モード端末は、限定された編集コマンドセットのみを提供します(例:Ctrl+W最後の単語の削除)。