vim:AnsiEsc - 如何默认打开它们?

时间:2017-11-24 14:38:55

标签: vim ansi-escape

我有日志文件(比方说扩展名为* .smt2),带有彩色日志条目,其中颜色由ansi转义码定义。我安装了基于AnsiEsc.vim的vim插件我不确定它是否成功,因为我收到了错误。

现在,当我打开vim编辑器时,我需要输入:AnsiEsc。 如何添加:AnsiEsc到我的.vimrc作为默认视图? (请告诉我自从我在Vim刚开始以来的所有步骤。)谢谢。

1 个答案:

答案 0 :(得分:1)

您的autocmd仅适用于作为命令行参数传递的第一个文件,因为:AnsiEsc命令仅适用于当前缓冲区。它会遗漏通过:edit:split打开的文件。更好地使用BufRead事件:

autocmd BufRead * AnsiEsc

另外,我想知道你是否只使用Vim查看日志文件(这可能会很遗憾)? :AnsiEsc命令可能会干扰编辑其他类型的文件。

通常的解决方案是定义自定义文件类型,例如log。然后,您可以通过~/.vim/ftplugin/log.vim中的以下脚本为这些文件启用插件:

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
    finish
endif
AnsiEsc

(您还需要在.vimrc中使用:filetype plugin on。)

要打开日志文件,您必须通过vim "+setf log" logfile指定文件类型::setf log或稍后在Vim内部。当然,如果日志文件名称遵循模式或者内部有某个公共字符串,那么您可以想象并编写文件类型检测;见:help new-filetype。或者你写一个shell别名,例如alias vimlog='vim +setf\ log'