我告诉 Mercurial 使用 vim 作为默认编辑器:
[ui]
editor = /opt/local/bin/vim
引用的 vim 是通过 MacPorts 安装的:
$ port installed | grep vim
vim @8.0.0596_0+huge (active)
当在命令行上调用 vim 时,我也会到达通过 MacPorts 安装的那个:
$ which vim
/opt/local/bin/vim
当我想使用 Mercurial 对文件进行差异分析时,我根据缺少的颜色无收到一些奇怪的错误:
处理函数 AnsiEsc#AnsiEsc 时检测到错误:
第 527 行:
E254:无法分配颜色无
按 ENTER 或输入命令继续
我不知道这是怎么回事。我的第一个想法是最后安装的插件。我删除了它,但什么也没改变。然后我在我的 .vimrc 中四处寻找,也没有成功。移动 ~/.vimrc 和 ~/.vim 以获得或多或少原始的 vim 也没有帮助。所以现在我陷入困境。
:scriptnames
不包含 AnsiEsc,通过查找也没有结果。在指定包含脚本的文件夹中查找find
也没有结果。grep
scriptnames
如何消除此错误消息?AnsiEsc 是什么(如果不是,则为 vim 插件),谁使用它以及为什么使用它?或者我如何找出 vim 加载 AnsiEsc 的原因以及为什么会出现此错误?
答案1
一个简单的网络搜索就可以让你找到vim.org 上的插件页面。安西Esc是一个扩展语法高亮以解释的插件ANSI 转义代码(类似于^[[01;42;31m
)。Unix 终端使用这些来添加文本属性和颜色。如果您捕获某些命令的输出,并在 Vim 中打开它,插件就可以发挥它的魔力,尽管它通常需要通过手动触发:AnsiEsc
。
关于错误:这可能是插件中的一个错误。首先,我会检查在作者主页。或者,如果你根本不想要这个,那就卸载它吧!怎么做?嗯,这取决于你是否使用插件管理器。如果没有,只需从您的目录(或系统目录,如果为所有用户安装。会提示您它在哪里)中删除plugin/AnsiEscPlugin.vim
和。autoload/AnsiEsc.vim
doc/AnsiEsc.txt
~/.vim/
:scriptnames
你使用的 Vim “发行版” 是这样的SPF-13和雅努斯? 这些软件以快速安装和开箱即用的设置吸引您,但您需要付出代价,增加复杂性(您需要了解 Vim 的运行时加载方案和发行版的任意约定)和不灵活性(发行版可能会使某些事情变得更容易,但其他事情却非常困难)。Vim 具有极高的可定制性,使用其他人的定制毫无意义。