我想使用一个适用于所有系统的编辑器。有人告诉我 VIM 是最好的,我在 ubuntu 上试过了,没有 VIM,但有 vi。
那么我应该使用哪一个
答案1
vi 会更常用,但它们并不完全一样。基础是一样的,但正如名称所暗示的那样,vim(vi 改进版)在功能方面更先进。
如果您想使用大多数系统上可用的编辑器,请使用 vi。如果您想使用功能更多的编辑器,请使用 vim,但要做好安装它的准备,或者在某些未安装 vi 的系统上重新使用 vi。话虽如此,但基本原理确实是一样的,所以在需要时重新使用 vi 应该不会太麻烦。
http://en.wikipedia.org/wiki/Vim_(text_editor)#Features_and_improvements_over_vi
答案2
Vim 是 vi 编辑器的扩展版本。Vim 更适合编码/脚本,因为它可以识别多种流行语言的编码语法。
答案3
根据我的经验,大多数发行版vi
都有别名vim
(RHEL 肯定有,Ubuntu 过去也有(当前版本没有,但预计它没有改变))。
答案4
我建议在你经常使用的系统上安装和使用 Vim,特别是如果你打算用它编码的话。Vim 提供了许多 Vi 所没有的有用功能,但基本的文本操作命令是相同的,所以在必要时你可以毫无问题地回到 Vi。
您还应该注意,尽管 Vi 在大多数(如果不是全部)基于 Unix 的系统中默认安装,但 Vim 适用于所有这些平台,并且与旧版本相比,它还被移植到更多的非 Unix 系统上。
至于为什么你应该考虑使用 Vim 而不是 Vi,这里有一些值得考虑的功能:
- 内置帮助系统(命令
:help
)。 - 语法高亮(
:syntax enable
)。 - Unicode 支持。
- 支持第三方插件。
- 无限次撤消。虽然 Vi 仅支持一次撤消,但您可以配置 Vim 中要记住的更改次数(默认为 1000)。
- 差异模式。Vim 可用于查看两个文件之间的差异,从而以交互方式合并这些文件。与 Git 等版本控制系统结合使用非常有用。
- 视觉模式。您可以在对文本执行命令之前直观地选择文本区域;类似于在大多数图形文本编辑器中按住 Shift 并移动箭头键。
- 自动完成。类似于现代 shell 中的制表符补全;您可以使用Tab来自动完成冒号命令,使用Ctrl+N来完成文本中的单词,使用Ctrl+L来完成整行。后两个命令根据文档其余部分的内容提供补全。
- 内置拼写检查器(使用 启用
:set spell
) - 选项卡和多个视图(尝试
:tabnew
和:vsplit
)。 - 文本对象。这允许您根据某些分隔符快速选择文本区域。例如,如果我们将光标放在 html 标记的内容上
<i>some text</i>
并运行命令dit
(d'埃莱特我'nside吨'ag),我们剩下<i></i>
。如果我们改用dat
(d'埃莱特A 吨'ag),<i></i>
标签也会被删除。同样,你可以删除双引号 (di"
)、括号 (di[
) 甚至整个段落 (dip
) 之间的内容。
要获得更全面的差异列表,请在终端中启动 Vim 并运行:help vi_diff
。