我有一组具有标准格式的日志文件。我为这些日志创建了一个自定义语法文件,它在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)可以正常工作。
答案 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
类别中。