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


37

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

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

回答:


37

通常の「モードレス」エディターは、Windowsのメモ帳のようなものです。テキストを入力するモードは1つだけです。

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

Viの上のWikipediaの記事は、モーダルインタフェースに良いエントリがあります。

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

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


1.他の二つのモードもありますコマンドモード使用すると、シェルと同じようにコマンドを入力するための、およびビジュアルモードで動作するテキストを選択します。


3
コマンドラインモードとビジュアルモードを忘れないでください。
ベルンハルト

いい視点ね。簡単にするためにプライマリモードにこだわりましたが、脚注として追加します。
jasonwryan

リンク「Vimのクラッチは」死んでいる
らし

@Rashiが修正されました...
jasonwryan

4

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

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


4
これは、Wikipediaからコピーされたように見えます(PRAMODがその記事を書いていない限り、私は知りません)。もしそうなら、その記事は引用されるべきではありませんか?
ギルデンスターン

0

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

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

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

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

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

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

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