Модельні та модальні редактори


37

Я тільки почав вивчати Linux, і весь свій попередній досвід програмування використовував платформу Windows. Я натрапив на редактор Vim і прочитав, що це модальний редактор на відміну від блокнота, який називають безмодним редактором.

Чи можете ви поясніть, будь ласка, у чому різниця між модемними та модальними редакторами взагалі?

Відповіді:


37

Нормальний редактор "без моделей" - це як "Блокнот" у Windows: є лише один режим, коли ви вводите текст.

Vi, і його наступник Vim, є модальними: є два основні режими 1 , вставте режим, коли ви вводите текст у редактор, і він присвячений документу, і звичайний режим, коли ви вводите аргументи через клавіатуру, яка виконує різні функції , включаючи: переміщення курсору навколо документа, пошук та маніпулювання текстом у документі (наприклад, вирізання та вставлення).

Стаття Вікіпедії про Vi має хороший запис у модальному інтерфейсі.

Основне звернення, спочатку необхідність у перші дні обчислень Unix до широкого прийняття миші, - це повністю редагування на клавіатурі. Цей підхід зараз отримав більш широке поширення в Unix-land, його використовують, наприклад, різні веб-браузери .

Цей дивовижний проект Vim Clutch забезпечує чітку візуалізацію концепції переключення між режимами.


1. Також є два інші режими, командний режим для введення команд, як у оболонці, і візуальний режим під час вибору тексту для роботи.


3
Не забудьте режим командного рядка та візуальний режим.
Бернхард

Влучне зауваження. Я просто дотримувався основних режимів для простоти, але додаду їх як виноску.
Jasonwryan

посилання "Vim Clutch" мертве
Раші

@Rashi fix ...
jasonwryan

4

У дизайні користувальницького інтерфейсу режим - це окрема установка в комп'ютерній програмі або будь-якому інтерфейсі фізичної машини, в якому той самий вхід користувача дасть сприйняті інші результати, ніж це було б в інших налаштуваннях. Найвідоміші компоненти модального інтерфейсу - це, ймовірно, клавіші Caps lock та Insert на стандартній клавіатурі комп'ютера, обидва з яких після натискання клавіші користувача переходять у інший режим, після чого після повторного натискання повертають його в звичайний режим.

Інтерфейс, який не використовує режими, відомий як безмодний інтерфейс. [1] Безмодні інтерфейси мають намір уникати помилок в режимі [2], унеможливлюючи користувач їх робити.


4
Схоже, це скопійовано з Вікіпедії (якщо ви ПРАМОД не написали цю статтю, я не знаю). Якщо так, чи не слід цитувати цю статтю?
Гільденстерн

0

Різниця полягає в тому, що в модальному редакторі вам потрібно явно перейти в один режим для введення тексту. У цьому режимі натискання клавіші додає символ цього клавіша до екрана, де знаходиться курсор, як і в машинці. Тоді вам доведеться явно перейти назад в інший режим, щоб зробити інші речі, такі як переміщення курсору, пошук, вибір області або копіювання тексту.

Безмодний редактор завжди дозволяє вставити текст і вимагає використовувати ключ модифікатора, якщо ви хочете, щоб ключ робив щось інше, ніж вставити літеру, наприклад, утримуючи клавішу Control і натискаючи кнопку C, щоб скопіювати вибраний текст.

Вони насправді не такі вже й різні, якщо ви думаєте про тримання клавіші модифікатора як у іншому режимі. Справжня різниця - це чіткі натискання клавіш, необхідні для перемикання режимів. У редакторі без режиму ви можете вважати клавішу модифікатора переходом до одного режиму під час її натискання, а потім після повернення в інший режим.

Ця частина прийнятої відповіді абсолютно неправильна:

Основне звернення, спочатку необхідність у перші дні обчислень Unix до широкого прийняття миші, - це повністю редагування на клавіатурі.

Редагування лише на клавіатурі працює чудово без явного переключення режиму. Ви можете перемістити курсор і вибрати області тексту за допомогою комбінацій клавіш. Наприклад, Ctrl + A для переміщення до початку рядка, Ctrl + Spc для встановлення слідуючої позначки, потім Ctrl + E для переміщення до кінця рядка, вибираючи таким чином весь рядок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.