【问题标题】:vim :AnsiEsc - how to have them on by default?vim :AnsiEsc - 默认情况下如何打开它们?
【发布时间】:2017-11-24 14:38:55
【问题描述】:

我有带有彩色日志条目的日志文件(比如说扩展名为 *.smt2),其中颜色由 ansi 转义码定义。我安装了基于AnsiEsc.vim的vim插件。

现在,当我打开我的 vim 编辑器时,我需要输入 :AnsiEsc。 如何将 :AnsiEsc 添加到我的 .vimrc 以显示在我的默认视图中?

【问题讨论】:

    标签: vim ansi-escape


    【解决方案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,或者稍后在 Vim 中通过:setf log。当然,如果日志文件名有规律或者里面有一定的通用字符串,你可以花点心思写一个文件类型检测;见:help new-filetype。或者你写一个 shell 别名,例如alias vimlog='vim +setf\ log'

    【讨论】:

    • 感谢您的回答。如果文件具有特定扩展名,例如 *.smt2,该怎么办。我只需要使用 :AnsiEsc 显示具有此扩展名的文件
    • 我的答案的第二部分正是这种情况 - 自定义文件类型。要将这些文件检测为log 类型(您可以调整它),请将au BufRead,BufNewFile *.smt2 set filetype=log 放入~/.vim/ftdetect/log.vim。 CP。 :help new-filetype了解详情。
    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多