




Гм ... может быть, в нем нет особой необходимости, учитывая, что Vi / Vim почти везде доступен и правильно понимает все модальные элементы? :)
Vis, Kakoune и Emacs + Evil, похоже, доказали, что этот ответ неверен.
Возможно, вещи, имитирующие vi, на самом деле не являются новыми модальными редакторами, но Kakoune, похоже, имеет значение. :)
Вис не имитирует Ви (он вдохновлен Ви и Сэмом). Emacs + Evil - это эмуляция Emacs плюс Vim, поэтому редактор Vi (m) не более, чем Spacevim - редактор Emacs (Spacemacs).
Часть, в которой вы оказались неправы, заключалась в отсутствии необходимости в новых модальных редакторах.
Конечно, да - на самом деле, говорить, что «в этом пространстве нет нужды ни в чем новом», глупо вне зависимости от контекста.
Но в некотором смысле этот ответ уместен - не потому, что в этом пространстве нет необходимости в чем-то новом, а потому, что долгое время все, что уже существовало (vim и немодальные, но достаточно расширяемые редакторы, такие как emacs), было достаточно гибкий, что новый материал в основном создавался поверх него, что вызывало низкий спрос и выборочное давление для создания совершенно новых модальных редакторов.
Я считаю, что Eclipse имеет привязки Vi, а также есть плагин / расширение Visual Studio (которое называется Vi-Emu или что-то в этом роде).
Раннее программное обеспечение часто было модальным, но в какой-то момент юзабилити изменилось в сторону от этого стиля.
Редакторы на основе VI - полнейшая загадка - они единственные выжившие члены этого порядка программного обеспечения.
Режимы - это запрет на удобство использования и дизайн взаимодействия, потому что мы, люди, - непостоянные млекопитающие, которым нельзя доверять, чтобы помнить, в каком режиме находится приложение.
Если вы думаете, что находитесь в одном «режиме», тогда как на самом деле находитесь в другом, это может привести к всевозможным неприятностям. То, что вы считаете серией безобидных нажатий клавиш, может (в неправильном режиме) привести к неограниченной катастрофе. Это известно как «ошибка режима».
Чтобы узнать больше, выполните поиск по запросу "немодальный" (и "юзабилити").
Как упоминается в комментариях ниже, модальный интерфейс в руках опытного и непостоянного человека может быть чрезвычайно эффективным.
Хотя ваш ответ хорошо описывает плохие стороны модальных интерфейсов для новых пользователей, он не касается значительного повышения эффективности, которое модальный интерфейс предлагает опытным пользователям. Возможно, вы могли бы отредактировать свой ответ, чтобы также указать на преимущества?
+1 за «непостоянных млекопитающих» - делает UI дизайн интересным :)
Иногда самый очевидный интерфейс для новичка не самый лучший ... Некоторые действительно хорошие вещи требуют небольших вложений!
Иногда предполагаемый «прирост производительности» от «инвестиций» является предлогом, сделанным постфактум, чтобы оправдать потраченное время на инвестиции. Знаю и пользуюсь ви / м. Я знаю и использую несколько других редакторов (но не EMACS). Я никогда не видел заметного повышения производительности от кого-либо из них, независимо от того, сколько времени или усилий я «вкладываю» в них, в основном потому, что когда я занимаюсь программным обеспечением, набор текста не является моей основной деятельностью. Мышление есть.
Для записи, мой почтовый клиент (mutt), мой веб-браузер (uzbl) и моя интерактивная оболочка (bash) работают в модальном режиме. Режимы могут быть опасными, если вы забыли, в каком режиме находитесь, но очень немногие из них обычно не могут быть легко восстановлены. Кроме того, модальное взаимодействие, хотя и противоречит интуиции, позволяет легко использовать очень мощные команды. Я примерно того же возраста, что и Vim, и до сих пор считаю модальное взаимодействие единственным способом получить реальную мощь клавиатуры.
Для справки, я впервые слышу об uzbl. Что это значит, решать вам. И «режимы» mutt - это не режимы в смысле vi / m (в руководстве они тоже не называются режимами), это представления. Таким образом, ОЧЕНЬ четко указывает, в каком «режиме» вы находитесь. И, наконец, о каких «режимах» bash вы говорите? Bash поддерживает редактирование vi, вы это имеете в виду? Если да, то сколько людей, не являющихся серьезными пользователями vi, используют эти сочетания клавиш?
@Hudson: разве вы не имели в виду «пока ваш ответ отвечает на вопрос» и, таким образом, не имели в виду вообще ничего не сказать? 27 голосов ... фанатов vi? (Этот пользователь Emacs готов к любой старой священной войне ;-))
За исключением добавления, этот ответ не учитывает популярность Ви. Кого волнует, что говорят эксперты по юзабилити, когда они явно не исследуют специфическую нишу пользователей модального редактора (Vi, Emacs + Evil и т. д.)? Хакеры могли сделать Vi-подобный (хотя и не клонированный) через годы. Почему они этого не сделали (по-видимому)? Такие редакторы, как Вис и Какун, кажутся недавними.
@Guildenstern Вопрос не об этом.
Мне кажется, что этот ответ очень близок к тому, чтобы коснуться того, что может быть действительно важным фактором: разные проблемные области имеют совершенно разные риски ошибок режима - последствия ошибки режима в чем-то вроде vim почти всегда обратимы нажатием кнопки «Отменить». много; Последствия ошибки режима в плохо спроектированном редакторе изображений, видео или 3D-моделей могут легко привести к зависанию компьютера из-за тяжелой обработки на несколько минут и разорвать все пространство, отведенное в истории отмен.
Более актуально для ответа на сам вопрос: я думаю, что этот ответ мог бы быть лучше, если бы привлечь внимание к тому, как может быть так мало модальных редакторов, потому что vim в основном достаточно хорошо заполняет эту нишу: есть случайные альтернативные попытки, и в последнее время neovim пришел для решения основные проблемы с vim в этой нише, но vim был достаточно гибкий, который большинство модальных редакторов хочет и потребности могут быть решены путем его настройки и расширения. Также к предпосылке вопроса: почти каждый достаточно гибкий редактор поставляется с плагином для более модального, подобного vi UX.
@JUSTMYcorrectOPINION Я согласен. Модальное редактирование не для повышения продуктивности, но оно, несомненно, доставляет мне больше удовольствия и заставляет меня достаточно воодушевляться, чтобы начать печатать даже в плохой день кодирования. Немодальная типизация на данный момент просто грустна для меня, хотя я, вероятно, немного быстрее с немодальной типизацией.
Хотя я не совсем отвечаю на ваш вопрос, раньше существовал "модальный" способ писать на японском на мобильных телефонах: Первая буква, которую вы нажали, была согласным, скажем K, а затем, а затем следующая клавиша, которую вы нажали, будет иметь роль согласного. (На японском невозможно поставить две согласные подряд)
Хотя он был основным несколько лет назад, сегодня он используется только людьми, которые действительно хотят быстро ударить.
@Leon: Отличный ответ.
@dbr: Модальное редактирование - это то, к чему нужно время, чтобы привыкнуть. Если бы вам пришлось создать новый редактор, соответствующий этой парадигме, как бы вы улучшили VI / VIM / Emacs? Я думаю, что это отчасти ответ на вопрос. Сделать это «правильно» достаточно сложно, соревноваться с подобными VI / VIM / Emacs будет чрезвычайно сложно - большинство людей, которые используют эти редакторы, являются «твердолобыми» фанатами, и вам придется дать им веские основания для этого. перейти в другой редактор. Те люди, которые их еще не используют, скорее всего, останутся в немодальном редакторе. ИМХО конечно;)
Способ привлечь новых пользователей - это сделать одного, нацеленного на конкретную нишу, например divascheme, о которой я упоминаю в своем ответе. Упрости. Тем не менее, я очень доволен vim.
«Если бы вам пришлось создать новый редактор, соответствующий этой парадигме, как бы вы улучшили VI / VIM / Emacs?» - Такун, например. Был ли оригинальный Vi действительно таким гениальным ходом? Билли Джой, похоже, так не думал.
Недавно я наткнулся на Divascheme - альтернативный набор привязок клавиш для DrScheme. Это модально, и отчасти оправдание связано с RSI - в частности, избегание большого скручивания запястья для удара по Ctrl-Alt-Shift-something. Кодер провел неформальный опрос коллег-программистов и обнаружил, что пользователи emacs страдают от большей боли в запястье, чем программисты vi.
Вы можете увидеть, как он выполняет короткий разговор в LugRadio Live USA. (Видео представляет собой серию 5-минутных разговоров, и я не могу вспомнить, как далеко он прошел, извините - если кто-то его посмотрит и разместит здесь, я отредактирую этот пост, чтобы сказать, когда это на видео).
Обратите внимание, я не использовал divascheme.
У модальных редакторов есть огромное преимущество для машинистов, набирающих вслепую: вы можете перемещаться по экрану, не отрывая рук от домашнего ряда. Мои запястья болят только тогда, когда я делаю что-то, что требует от меня постоянно убирать руку с клавиатуры на мышь или клавиши со стрелками и обратно.
Стоит отметить, что выживаемость моделей ввода vi отчасти объясняется их принятием в стандарте POSIX, поэтому инвестирование времени в обучение будет означать, что вы гарантированно сможете работать с любой системой, соответствующей этим стандартам. Так что, как и в английском, сила в повсеместном использовании.
Что касается альтернатив, я сомневаюсь, что альтернативный редактор моделей переживет 30-дневный бесплатный пробный период, поэтому по той же причине больше людей водят автоматику, чем летающие самолеты.
+1. Единственная причина, по которой я изучил vi, заключалась в том, что он гарантированно работал на любом Unix-подобном. Других редакторов не так много.
Я думаю, это потому, что vi (и ему подобные) уже занимает экологическую нишу модальных редакторов.
Число людей, которые предпочитают модальный интерфейс и еще не заинтересовались vi, вероятно, равно 0, поэтому гипотетический конкурент vi должен быть настолько большим, чтобы заставить переключиться значительное количество пользователей vi. Это маловероятно. Стоимость смены редактора огромна, и vi-s, вероятно, уже не хуже модальных редакторов. Что ж, возможно, значительный прорыв мог бы улучшить их, но я считаю это маловероятным.
Совершенно верно, тем более что вы можете перезаписать любую часть сочетаний клавиш по умолчанию, которые вам не нравятся, в вашем .vimrc.
Я думаю, что значительный прорыв неизбежен в мире, наполненном мультитач-устройствами. Возможность отображать контекстные подсказки непосредственно на клавишах значительно снижает кривую обучения модальных интерфейсов.
Я полностью согласен с 1-м предложением. Это, по сути, ответ на вопрос. Но с остальным - нет. Я хотел бы использовать модальный редактор, но ненавижу КАЖДОЕ важное дизайнерское решение, связанное с удобством использования в vim. Навигация в обычном режиме против визуального режима? Привязка ключей? Чрезвычайно ограниченные возможности переназначения (для совместимости с abac?)? Сильной стороной Vim является его экосистема плагинов, но vimscript ....
Это просто сводится к следующему: поскольку Vi уже фантастична, переключение обходится дорого, и «маловероятно» (необоснованно, но это нормально), что другой модальный редактор мог бы улучшить их. Или, другими словами: «Ви действительно великолепна. Это лучший ответ, который я могу дать ».
Проблема в том, что варианты vi и все, которые я когда-либо пробовал, работают медленно с любым приличным синтаксисом / автозаполнением. Сейчас 21 век, а они до сих пор не придумали, как выводить текст со скоростью 60 кадров в секунду? Это довольно удручает. Если мы абстрагируем концепцию vi от ее старого, хитроумного движка, что-то вроде 4coder могло бы стать заменой привязкам клавиш vi. Он работает быстро, но внешне может быть идентичен деталям vi.
Я думаю, что ответ на вопрос заключается в том, что на самом деле существует довольно много модальных текстовых редакторов, которые не являются ветвями vi / vim. Однако все они используют привязки клавиш vi. Пользователи Vi сохраняют привязки клавиш в своей мышечной памяти, поэтому переучить другой набор привязок клавиш было бы очень сложно, поэтому никто не стал бы создавать другой набор привязок клавиш.
Но множество разных редакторов заново реализовали привязки клавиш vi с нуля. Просто посмотрите на этот вопрос об IDE с привязками клавиш vi. По крайней мере, половина ответов - это редакторы, созданные с нуля, которые реализуют привязку клавиш vi, а не версии встроенного vi.
Ммммм. Вы заметите, что даже вещи, которые не являются редакторами, иногда имеют сочетания клавиш в стиле vi (на ум приходят Gmail и Google Reader).
Представьте программистов инструменталистами. «Ага, я не умею играть на пианино, я уже натренировал свои мускулы для игры на гитаре!»
VIM и emacs имеют такой же смысл в дизайне пользовательского интерфейса, как и qwerty. Теперь у нас есть доступные современные компьютерные оптимизированные раскладки клавиш (см. Раскладку colemak и проект carpalx); Это лишь вопрос времени, когда кто-то сделает то же самое с текстовыми редакторами.
Чтобы уточнить, мне нравится набор команд vim. Одна только мощь команд приводит к огромному сокращению количества нажатий кнопок, но я чувствую, что раскладка клавиш была больше обусловлена мнемоникой и обратной совместимостью, чем эргономикой. Возможно, это всего лишь теория информации в действии; чем эффективнее становятся команды, тем более случайным образом они располагаются.
Изобретение мышь взяло один режим и переместило его на устройство ввода, а контекстные меню взяли другой режим и переместили его на кнопку. По иронии судьбы появление сенсорных устройств имело обратный эффект, создав интерфейсы мультимодальный:
осознающий мультимодальный - прикосновение и речь знают друг друга и пересекаются
не осознают мультимодальность - прикосновение и речь не знают друг друга и конфликтуют
The traditional WIMP interfaces have the basic premise that the information can flow in and out of the system through a single channel or an event stream. This event stream can be in the form of input (mouse, keyboard etc) where the user enters data to the system and expects feedback in the form of output (voice, vibration, visual, etc) when the system responds. But the channel maintains its singularity and can process information one source at a time. For example, in today’s interaction, the computer ignores typed information (through a keyboard) when a mouse button is depressed.
This is very much different from a multimodal interaction where the system has multiple event streams and channels and can process information coming through various input modes acting in parallel, such as those described above. For example, in an IVR system a user can either type or speak to navigate through the menu.
Рекомендации
Помните, что Блокнот - это модальный редактор!
Чтобы увидеть это, попробуйте набрать E, D, I, T; теперь попробуйте ввести Alt, E, D, I, T. Во втором случае клавиша Alt активирует «режим меню», поэтому результаты будут другими. : oP Люди вроде с этим справляются.
(Да, это функция Windows, а не Блокнота. Я думаю, что это плохая функция, потому что легко нажать Alt по ошибке, и я не думаю, что вы можете отключить ее.)
Интересно, что «Квазимоды» (что указывает на то, что в Windows есть режим StickyKeys, который превращает его в правильную модальную систему!)
Точно так же вы можете утверждать, что каждый редактор, который может делать выбор, является модальным. Более того, я бы сказал, что выбор чего-либо (возможно, с помощью какого-либо сочетания клавиш из режима вставки) - лучший способ переключиться в режим выбора.
@ Слава Да! Если вы выделите блок, то при вводе текста, Ctrl-C (копирование), Delete и клавишах со стрелками поведение изменилось. (На самом деле редактор может обеспечить ту же функциональность в немодальном режиме, хотя, вероятно, менее практично и интуитивно понятно, чем с помощью выделенных блоков. В vi вы можете установить метку (ma), затем перейти в другую позицию и удалить (d`a), изменить (c`a) ) или скопируйте (y`a) текст между этой позицией и меткой.)
+1 Чтобы подчеркнуть это еще больше: что-то «немодальное», например emacs, внезапно кажется чрезвычайно модальным, когда у вас есть залипающие и защелкивающиеся клавиши-модификаторы: CtrlCtrl (переключатель режима) xc (команда). И когда я использую zsh, я либо широко использую встроенный командный режим vi (при использовании через обычную клавиатуру компьютера), либо почти полностью остаюсь в режиме вставки со всеми модальными преимуществами от липких модификаторов фиксации (при использовании через телефон с хорошо настроенной клавиатурой). Между этими модальными и якобы немодальными интерфейсами существует симметрия, иногда даже функциональная эквивалентность.
Поскольку этот вопрос уже идет вразрез с мантрой «никаких субъективных проблем», позвольте мне встретиться с этим лицом к лицу.
Немодальное редактирование направлено в первую очередь на решение проблемы, вызванной немодальным редактированием.
Проще говоря, с модальным редактированием я могу делать почти все, не отрывая рук от клавиатуры, и даже не мучая свой мизинец, пытаясь взять элемент управления или прерывая размещение пальца, охотясь за клавишами со стрелками.
Достижение мыши полностью прерывает ход мыслей. Я много лет ненавидел сильную зависимость от этого в Intellij IDEA и Netbeans. Даже с аддонами в стиле vim.
Большая часть того, что вы делаете, связано с тонкой настройкой с очень небольшими приращениями и изменениями в одном и том же абзаце кода. Перемещение вверх, перемещение, изменение персонажа и т. д. И т. Д. Эти действия прерываются с помощью управляющих клавиш, стрелок и мыши.
Хотя у меня нет проблем с субъективностью ответа, это все еще не ответ на вопрос ОП.
Гм. В стандартных сочетаниях клавиш emacs C-w убивает область между точкой и меткой.