cygwin:vim自定义语法高亮不起作用

时间:2015-01-22 18:08:27

标签: vim cygwin syntax-highlighting

我有一组具有标准格式的日志文件。我为这些日志创建了一个自定义语法文件,它在linux系统上运行良好。

然而,我不能让它在cygwin中工作。我在我的主目录中有以下.vimrc文件:

au BufRead,BufNewFile rc.log* set filetype=rclog
au! Syntax rclog source ~/.vim/log.vim

syntax on

并在〜/ .vim / i中有log.vim:

:syn region logTime start=+^\d\{4}-\d\{2}-\d\{2} \d\{2}:\d\{2}:\d\{2}+ end=+ +me=e-1
:syn keyword logError ERROR skipwhite nextgroup=logThreadName
:syn keyword logWarn WARN skipwhite nextgroup=logThreadName
:syn keyword logInfo INFO skipwhite nextgroup=logThreadName
:syn keyword logDebug DEBUG skipwhite nextgroup=logThreadName
:syn keyword logAlways ALWAYS skipwhite nextgroup=logThreadName
:syn keyword logConfig CONFIG skipwhite nextgroup=logThreadName
:syn match logThreadName "\[\S\+\]" contained nextgroup=logClassName
:syn match logClassName " \S\+:" contained nextgroup=logLineNumber
:syn match logLineNumber "\d\+" contained

hi def logError ctermfg=white ctermbg=red
hi def logWarn ctermfg=black ctermbg=yellow
hi def logInfo ctermfg=green
hi def logDebug ctermfg=blue
hi def logAlways ctermfg=yellow
hi def logConfig ctermfg=cyan
hi def logTime ctermfg=white ctermbg=blue
hi def logThreadName ctermfg=magenta
hi def logClassName ctermfg=cyan
hi def logLineNumber ctermfg=yellow
hi link cConstant NONE

我尝试执行:source ~/.vimrc无济于事。我的日志文件始终显示,没有语法突出显示。具有内置高亮显示的文件类型的文件(例如.py或.c)可以正常工作。

2 个答案:

答案 0 :(得分:1)

不要使用:au! Syntax;相反,将~/.vim/log.vim移至~/.vim/syntax/rclog.vim;然后根据您的文件类型检测自动读取它:

au BufRead,BufNewFile rc.log* set filetype=rclog

您可以使用:scriptnames:20verbose setlocal syntax=rclog验证并进行问题排查。

答案 1 :(得分:0)

从这个link开始,基本Cygwin安装附带的默认包是vi而不是vim。在基本安装Cygwin中键入命令vim时,会调用一个类似于vim的文本编辑器,但它实际上是vi,而vi没有语法染色。要解决语法着色问题,只需安装Cygwin vim中的setup-x86.exe包即可。此软件包位于Editor类别中。