关于vim:为什么为什么不是vi *的模态编辑器这么少?

关于vim:为什么为什么不是vi *的模态编辑器这么少?

Why are there so few modal-editors that aren't vi*?

几乎不是vi后代的其他所有编辑器(vim,cream,vi-emu)似乎都使用了emacs快捷方式(ctrl w删除了一个单词,依此类推)


早期的软件通常是模式化的,但是可用性在某种程度上有所改变,与这种风格背道而驰。

基于

VI的编辑器完全是个谜–它们是该软件顺序中唯一真正存在的成员。

模式在可用性和交互设计中是不容置疑的,因为我们人类是善变的哺乳动物,无法信任他们记住应用程序处于哪种模式。

如果您认为自己实际上处于另一种"模式"中,那么可能会发生各种不良情况。您认为是一系列无害的击键会(在错误的模式下)引起无限的灾难。这称为"模式错误"。

要了解更多信息,请搜索术语"无模式"(和"可用性")

如以下评论中所述,经验丰富且善变的人手中的模式界面可能非常高效。


嗯...鉴于Vi / Vim随处可见,并且整个模态都正确,所以也许不需要太多。 :)


我认为这是因为vi(及其同类)已经占据了模式编辑的生态环境。

更喜欢模态且尚未被vi吸引的人数可能为0,因此假设的vi竞争者必须如此之大,以使大量的vi用户切换。这不太可能。切换编辑器的成本是巨大的,而vi-s可能已经与模式编辑器一样好。好吧,也许重大的突破可以改善他们,但是我发现这不太可能。


模态编辑器具有触摸打字员的巨大优势,您可以在屏幕上浏览而无需将手从首页移开。仅当我在做某些需要我将手从键盘移开并移到鼠标或箭头键上并不断向后移的时候,手腕才会受伤。


@Leon:很好的答案。

@dbr:模态编辑需要一段时间才能习惯。如果要构建适合此范例的新编辑器,您将如何在VI / VIM / Emacs上进行改进?我认为,这在某种程度上是对该问题的答案。做到"正确"已经足够困难了,要再次与VI / VIM / Emacs之类的游戏进行竞争将非常困难-大多数使用这些编辑器的人都是"死忠"粉丝,您必须给他们一个令人信服的理由移到另一个编辑器。那些已经不使用它们的人很可能会留在非模式编辑器中。当然恕我直言;)


请记住,记事本是模式编辑器!

要查看此内容,请尝试键入EDIT;现在尝试输入AltEDIT。在第二种情况下,Alt键可激活"菜单模式",因此结果有所不同。 :oP人们似乎可以解决这个问题。

(是的,这是Windows的功能,而不是Notepad的特定功能。我认为这是一个不好的功能,因为很容易错误地按下Alt键,我不认为您可以将其关闭。)


VIM和emacs具有与qwerty一样多的用户界面设计意义。现在,我们有了可用的现代计算机优化键布局(请参阅colemak布局和carpalx项目);有人对文本编辑器执行相同的操作只是时间问题。


由于这个问题已经与"无主观问题"的口头禅相矛盾,所以请允许我直面这个话题。

非模态编辑首先要解决由非模态编辑引起的问题。

简单地说,通过模态编辑,我几乎可以做任何事情,而无需手离开键盘,甚至都无法触及控件而折磨我的小指,也不需要通过寻找箭头键来打断手指的放置。

  • 伸手捉老鼠完全打断了思路。多年来,我一直非常讨厌Intellij IDEA和Netbeans对此的高度依赖。即使使用vim样式的插件。

  • 您所做的大部分工作都与在同一段代码内以很小的增量和更改进行微调有关。向上移动,移动,更改字符等,等等。这些操作被控制键,箭头和鼠标打断。


  • 值得注意的是,vi输入模型的生存部分是由于它已在POSIX标准中采用,因此在学习上投入时间将意味着您保证可以在符合这些标准的任何系统上工作。因此,就像英语一样,无处不在。

    就替代方案而言,我怀疑替代模型编辑器能否在30天的免费试用期内存活下来,因此,与飞喷气式飞机相比,更多的人会自动驾驶,这也是同样的原因。


    我相信Eclipse具有Vi绑定,并且也有Visual Studio插件/扩展(称为Vi-Emu或其他名称)。


    鼠标的发明采用一种模式并将其移至输入设备,上下文菜单采用另一种模式并将其移至按钮。具有讽刺意味的是,触摸设备的出现产生了相反的效果,产生了多模式界面:

    • 可感知的多模式-触摸和语音彼此了解并相交

    • 不了解多模式-触摸和语音不了解彼此并发生冲突

    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.

    参考文献

    • 用户代理可访问性准则工作组(UAWG):键盘界面用例

    • W3C多峰标准将网络带给更多人,更多方式

    • W3C在多峰标准上的后续步骤

    • 互动的未来是多峰的

    • 超越鼠标和键盘:信息可视化交互的扩展设计注意事项-naturalinfovis_infovis2012.pdf

    • 设置轻量级基于Web的应用程序的范围

    • Jan。 1983年6月26日:电子表格轻松到1-2-3

    • 多模式设计:手势,触摸和移动设备...下一件大事了吗? |体验动力


    我认为问题的答案实际上是有很多模态文本编辑器不是vi / vim的分支。但是,它们都使用vi键绑定。 Vi用户将键绑定输入到他们的肌肉记忆中,因此重新学习另一组键绑定确实非常困难,因此没人会创建另一组键绑定。

    但是许多不同的编辑者从头开始重新实现了vi键绑定。只需看一下有关带有vi键绑定的IDE的问题。至少一半的答案是从零开始构建的,用于实现vi键绑定的编辑器,而不是嵌入式vi的版本。


    我最近遇到了divascheme-DrScheme的另一组键绑定。这是模态的,部分理由与RSI有关-特别是避免大量的手腕扭曲以击中Ctrl-Alt-Shift-something。编码人员对其他编码人员进行了非正式调查,发现emacs用户比vi编码人员遭受更多的手腕疼痛。

    您可以看到他在LugRadio Live USA上进行了简短的演讲。 (该视频是一系列5分钟的演讲,我不记得它走了多远,对不起-如果有人观看并在此处发布,则我将对此信息进行编辑,以表明在视频中显示的时间)。

    请注意,我尚未使用过血管舒张术。


    尽管并未真正回答您的问题,但以前曾经有一种"模态样"的方式在手机上写日语:
    您打的第一个字母是一个子音,比方说K,然后,您要打的下一个键将扮演一个子音。 (日语中不可能连续拥有两个子)

    尽管几年前它很流行,但今天只有真正想要快速击打的人使用。


    推荐阅读