web-dev-qa-db-ja.com

モードレスVSモーダルエディター

Linuxの学習を始めたばかりで、これまでのプログラミング経験はすべてWindowsプラットフォームを使用しています。私はVimエディターに出会い、モードレスエディターと呼ばれるメモ帳とは異なり、モーダルエディターであると読みました。

モードレスエディターとモーダルエディターの違いは何ですか?

37
Geek

通常の「モードレス」エディターは、Windowsのメモ帳に似ています。テキストを入力するモードは1つだけです。

Viとその後継のVimはモーダルです。2つの主要なモードがあります。1挿入モードエディタにテキストを入力してドキュメントにコミットする場所、および通常モードキーボードから引数を入力して、ドキュメント内でのカーソルの移動、検索、ドキュメント内のテキストの操作(切り取りや貼り付けなど)などのさまざまな機能を実行します。

Viに関するWikipediaの記事 は、モーダルインターフェイスに関する優れたエントリです。

主要な魅力は、もともとマウスが広く採用される前のUnixコンピューティングの初期の段階で必要でしたが、完全にキーボード駆動の編集です。このアプローチは現在、Unixランドで広く採用されており、たとえばさまざまな web browsers で使用されています。

この素晴らしいプロジェクト Vim Clutch は、モード間の切り替えの概念を明確に視覚化しています。


1.他にも2つのモードがあります。シェルで行うようにコマンドを入力するためのコマンドモード、およびビジュアルです。操作するテキストを選択するときのmode

37
jasonwryan

ユーザーインターフェイスの設計では、モードはコンピュータープログラムまたは任意の物理マシンインターフェイス内の個別の設定であり、同じユーザー入力で他の設定とは異なる結果が認識されます。最もよく知られているモーダルインターフェイスコンポーネントは、おそらく標準のコンピューターキーボードのCaps LockキーとInsertキーです。どちらも、ユーザーの入力を押した後に別のモードに切り替え、再度押した後は通常のモードに戻します。

モードを使用しないインターフェイスは、モードレスインターフェイスと呼ばれます。[1]モードレスインターフェースは、ユーザーがコミットできないようにすることで、モードエラーを回避することを目的としています[2]。

4
PRAMOD

違いは、モーダルエディターでは、テキストを入力するために1つのモードに明示的に切り替える必要があることです。このモードでは、キーを押すと、タイプライターと同じように、カーソルのある画面にそのキーの文字が追加されます。次に、明示的に別のモードに切り替えて、カーソルの移動、検索、領域の選択、テキストのコピーなどを実行する必要があります。

モードレスエディターでは、常にテキストを挿入できます。Ctrlキーを押しながらCキーを押して選択したテキストをコピーするなど、文字の挿入以外の操作をキーで実行する場合は、修飾キーを使用する必要があります。

修飾キーを押したまま別のモードにあると考えても、実際にはそれほど違いはありません。実際の違いは、モードを切り替えるために必要な明示的なキーストロークです。モードレスエディターでは、モディファイアキーは、押されているときに1つのモードに切り替え、離されたときにもう1つのモードに戻ると考えることができます。

受け入れられた回答のこの部分は完全に間違っています:

主要な魅力は、もともとマウスが広く採用される前のUnixコンピューティングの初期の段階で必要でしたが、完全にキーボード駆動の編集です。

キーボードのみの編集は、明示的なモード切り替えなしで問題なく機能します。カーソルを移動して、キーの組み合わせでテキストの領域を選択できます。たとえば、Ctrl + Aで行の先頭に移動し、Ctrl + Spcでマークを設定し、Ctrl + Eで行の最後に移動して行全体を選択します。

1
kevincasey