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

7
我有带有彩色日志条目的日志文件(假设扩展名为*.smt2),其中颜色由ansi转义码定义。我安装了基于AnsiEsc.vim的vim插件。
现在,当我打开vim编辑器时,我需要输入:AnsiEsc。如何将:AnsiEsc添加到我的.vimrc中以便在默认视图中显示?
1个回答

6

你的自动命令只会对作为命令行参数传递的第一个文件起作用,因为: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 或在 Vim 中输入:setf log。当然,如果日志文件名称遵循某种模式或具有某个特定的共同字符串,您可以写一个 文件类型检测器;请参阅:help new-filetype。或者您可以编写一个 shell 别名,例如:alias vimlog='vim +setf\ log'

谢谢你的回答。如果文件有特定的扩展名,比如*.smt2,该怎么办?我只需要显示这个扩展名的文件:AnsiEsc - sepideha
1
这正是我回答的第二部分 - 自定义文件类型。要将这些文件检测为类型“log”(您可以进行适应),请将au BufRead,BufNewFile *.smt2 set filetype = log放入〜/ .vim / ftdetect / log.vim中。参见:help new-filetype以获取详细信息。 - Ingo Karkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接