32

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

4

14 回答 14

50

早期的软件通常是模态的,但可用性在某些时候发生了转变,远离了这种风格。

基于 VI 的编辑器完全是个谜——他们是该软件秩序中唯一真正幸存的成员。

模式在可用性和交互设计中是一个禁忌,因为我们人类是善变的哺乳动物,不能相信他们会记住应用程序处于什么模式。

如果您认为自己处于一种“模式”,而实际上您处于另一种“模式”中,那么就会出现各种不良情况。您认为一系列无害的击键可能(在错误的模式下)造成无限的灾难。这被称为“模式错误”。

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

正如下面的评论中所提到的,一个有经验且不善变的人手中的模态界面可能非常有效。

于 2008-08-18T12:03:03.380 回答
9

嗯......也许没有太多需要,因为 Vi/Vim 几乎无处不在,并且得到了整个模态的东西,对吗?:)

于 2008-08-18T10:12:49.280 回答
8

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

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

于 2009-02-11T16:40:14.360 回答
5

@Leon:很好的答案。

@dbr:模态编辑需要一段时间才能习惯。如果您要构建一个适合这种范式的新编辑器,您将如何改进 VI/VIM/Emacs?我认为这部分是对这个问题的回答。让它“正确”已经够难了,与 VI/VIM/Emacs 之类的东西竞争将非常艰难——大多数使用这些编辑器的人都是“死忠”的粉丝,你必须给他们一个令人信服的理由移动到另一个编辑器。那些还没有使用它们的人很可能会留在非模态编辑器中。恕我直言,当然;)

于 2008-08-18T21:00:57.287 回答
5

模态编辑器具有触摸打字员的巨大优势,您可以在屏幕上导航而无需将手从主行移开。我的手腕只有在我做的事情需要我把手从键盘上移到鼠标或箭头键上然后不断地移回来时才会受伤。

于 2008-12-16T15:31:09.700 回答
4

请记住,记事本是一个模态编辑器!

要查看此内容,请尝试输入E, D, I, T; 现在尝试输入Alt, E, D, I, T. 在第二种情况下,Alt 键激活“菜单模式”,因此结果不同。:oP 人们似乎可以应付。

(是的,这是 Windows 的一项功能,而不是记事本的一项功能。我认为这是一个不好的功能,因为它很容易误按 Alt,而且我认为您无法将其关闭。)

于 2014-07-04T13:12:12.450 回答
3

VIM 和 emacs 的用户界面设计意义与 qwerty 一样多。我们现在有可用的现代计算机优化键布局(参见 colemak 布局和 carpalx 项目);有人为文本编辑器做同样的事情只是时间问题。

于 2010-06-04T04:42:15.833 回答
2

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

于 2008-08-18T10:13:17.407 回答
2

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

就替代方案而言,我怀疑替代模型编辑器能否在 30 天的免费试用期中存活下来,所以这也是驾驶自动驾驶汽车的人多于驾驶喷气式飞机的原因。

于 2008-12-16T23:14:17.720 回答
2

由于这个问题已经与“没有主观问题”的口头禅相悖,请允许我以实物的形式面对这个问题。

非模态编辑首先要解决非模态编辑带来的问题。

简而言之,通过模态编辑,我几乎可以在双手不离开键盘的情况下完成所有操作,甚至不会因为伸手去拿控件而折磨我的小指,或者通过寻找箭头键来打断我的手指放置。

  1. 伸手去拿鼠标完全打断了思路。多年来,我一直讨厌 Intellij IDEA 和 Netbeans 对这一点的强烈依赖。即使使用 vim 风格的插件。

  2. 您所做的大部分工作都与在同一段代码中以非常小的增量和更改进行微调有关。上移、移过、改变字符等等等等。这些东西被控制键和箭头和鼠标打断了。

于 2019-08-01T16:03:10.910 回答
1

虽然没有真正回答你的问题,但以前在手机上写日语时曾经有一种“模态”方式:你击中的第一个字母是一个conson,比如说 K,然后,然后你会击中的下一个键会有一个conson的角色。(在日语中连续两个conson是不可能的)

虽然几年前它是主要的,但今天它只被真正想要快速击球的人使用。

于 2008-08-18T12:30:07.257 回答
1

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

你可以看到他在LugRadio Live USA做一个简短的演讲。(该视频是一系列 5 分钟的演讲,我不记得它有多远,抱歉 - 如果有人观看它并在此处发布,我将编辑此帖子以说明它在视频中的时间)。

请注意,我没有使用 divascheme。

于 2008-08-27T20:13:32.017 回答
1

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

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

于 2010-04-25T21:56:36.850 回答
1

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

  • 感知多模态 - 触摸和语音相互感知并相交

  • 不知道多模态 - 触摸和语音不知道彼此并发生冲突

传统的WIMP接口的基本前提是信息可以通过单通道或事件流进出系统。此事件流可以是输入(鼠标、键盘等)的形式,其中用户向系统输入数据并在系统响应时期望以输出形式的反馈(语音、振动、视觉等)。但渠道保持其独特性,可以一次处理一个来源的信息。例如,在今天的交互中,当按下鼠标按钮时,计算机会忽略输入的信息(通过键盘)。

这与多模式交互有很大不同,在多模式交互中,系统具有多个事件流和通道,并且可以处理来自并行作用的各种输入模式的信息,例如上述那些。例如,在 IVR 系统中,用户可以通过键入或说话来浏览菜单。

参考

于 2013-08-13T19:32:23.273 回答