为什么那么少的模态编辑器不是vi *?

时间:2008-08-18 10:08:09

标签: vim editor vi

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

14 个答案:

答案 0 :(得分:44)

早期的软件往往是模态的,但可用性在某种程度上转向,远离这种风格。

基于VI的编辑是完全的谜 - 他们是该软件订单中唯一真正幸存的成员。

模式在可用性和交互设计方面是禁忌,因为我们人类是变幻无常的哺乳动物,无法信任它们以记住应用程序所处的模式。

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

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

如下面的评论所述,经验丰富且不善变人的人手中的模态界面非常有效。

答案 1 :(得分:9)

嗯...也许没有太多的需要,因为Vi / Vim几乎可以在任何地方使用并且整个模态的东西是正确的? :)

答案 2 :(得分:8)

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

喜欢模态并且还没有被vi吸引的人数可能是0,所以假设的vi竞争者必须非常好才能让大量的vi用户切换。这不太可能。切换编辑器的成本是巨大的,vi-s可能已经和模态编辑器一样好了。好吧,也许一个重大的突破可以改善他们,但我发现这不太可能。

答案 3 :(得分:5)

@Leon:很棒的答案。

@dbr:模态编辑需要一段时间才能习惯。如果您要构建适合此范例的新编辑器,您将如何改进VI / VIM / Emacs?我认为这部分是对问题的回答。让它“正确”是很难的,再次竞争VI / VIM / Emacs这样的东西会非常艰难 - 大多数使用这些编辑的人都是“死硬”粉丝,你必须给他们一个令人信服的理由转到另一位编辑。那些不使用它们的人很可能会留在非模态编辑器中。恕我直言;)

答案 4 :(得分:5)

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

答案 5 :(得分:4)

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

要看到这一点,请尝试输入 E D I T ;现在尝试键入 Alt E D I T 。在第二种情况下,Alt键激活“菜单模式”,因此结果不同。 :oP人们似乎应对这一点。

(是的,这是Windows的一个功能,而不是记事本的特殊功能。我认为这是一个很糟糕的功能,因为很容易误击Alt,我认为你不能把它关掉。)

答案 6 :(得分:3)

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

答案 7 :(得分:2)

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

答案 8 :(得分:1)

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

但是许多不同的编辑器已经从头开始重新实现了vi键绑定。只需看看this question about IDEs with vi key bindings。至少有一半的答案是从头开始构建的编辑器,它们实现了vi键绑定,而不是vi嵌入的版本。

答案 9 :(得分:1)

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

你可以看到他在short talk处进行LugRadio Live USA。 (该视频是一系列5分钟的会谈,我记不清它到底有多远,抱歉 - 如果有人观看并在此处发帖,我会编辑此帖子,以便在视频中说明。)

注意我没有使用divascheme。

答案 10 :(得分:1)

虽然没有真正回答你的问题,过去曾经有一种“莫代尔”的方式在手机上写日语: 你击中的第一个字母是一个conson,让我们说K,然后,然后你要击中的下一个键就会有一个conson的角色。 (在日语中连续两个conson是不可能的)

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

答案 11 :(得分:1)

由于这是一个与“没有主观问题”的口头禅相矛盾的问题,请允许我直面这个话题。

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

简而言之,通过模态编辑,我几乎可以做任何事情,而无需离开键盘,也无需伸手去拿控件就可以折磨我的小指,也不需要通过寻找箭头键来打断手指。

  1. 达到鼠标完全中断了思路。多年来,我一直非常讨厌Intellij IDEA和Netbeans对此的依赖。即使使用vim样式的插件。

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

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

mouse的发明采用了一种模式并将其移动到输入设备,上下文菜单采用了另一种模式并将其移动到一个按钮。具有讽刺意味的是,触摸设备的出现产生了相反的效果,产生了multi-modal接口:

  • 意识到多模式 - 触摸和语音相互了解并相交

  • 不知不觉多模式 - 触摸和言语不知道彼此和冲突

  

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

     

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

<强>参考