cygwin:vim 自定义语法突出显示不起作用
cygwin: vim custom syntax highlighting not working
我有一组标准格式的日志文件。我为这些日志创建了一个自定义语法文件,它在 linux 系统上运行良好。
但是,我无法让它在 cygwin 中运行。我的主目录中有以下 .vimrc 文件:
au BufRead,BufNewFile rc.log* set filetype=rclog
au! Syntax rclog source ~/.vim/log.vim
syntax on
在 ~/.vim/ 我有 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)的文件工作正常。
不要使用:au! Syntax
;相反,将 ~/.vim/log.vim
移动到 ~/.vim/syntax/rclog.vim
;然后它会根据您的文件类型检测自动读取:
au BufRead,BufNewFile rc.log* set filetype=rclog
您可以使用 :scriptnames
或通过 :20verbose setlocal syntax=rclog
进行验证和故障排除。
由此 link,基本 Cygwin 安装附带的默认包是 vi
而不是 vim
。当您在 base-installation Cygwin 中键入命令 vim
时,会调用一个看起来像 vim
但实际上是 vi
的文本编辑器,而 vi
不会有语法着色。要解决语法着色问题,只需从 Cygwin setup-x86.exe
安装 vim
包。此包属于 Editor
类别。
我有一组标准格式的日志文件。我为这些日志创建了一个自定义语法文件,它在 linux 系统上运行良好。
但是,我无法让它在 cygwin 中运行。我的主目录中有以下 .vimrc 文件:
au BufRead,BufNewFile rc.log* set filetype=rclog
au! Syntax rclog source ~/.vim/log.vim
syntax on
在 ~/.vim/ 我有 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)的文件工作正常。
不要使用:au! Syntax
;相反,将 ~/.vim/log.vim
移动到 ~/.vim/syntax/rclog.vim
;然后它会根据您的文件类型检测自动读取:
au BufRead,BufNewFile rc.log* set filetype=rclog
您可以使用 :scriptnames
或通过 :20verbose setlocal syntax=rclog
进行验证和故障排除。
由此 link,基本 Cygwin 安装附带的默认包是 vi
而不是 vim
。当您在 base-installation Cygwin 中键入命令 vim
时,会调用一个看起来像 vim
但实际上是 vi
的文本编辑器,而 vi
不会有语法着色。要解决语法着色问题,只需从 Cygwin setup-x86.exe
安装 vim
包。此包属于 Editor
类别。