我找到this,如果超过某个宽度我可以突出显示代码。但是,我不希望它用于文本文件(如LaTeX)。因此,我尝试过(在.vimrc
中):
if (&ft=='python' || &ft!='r')
highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9
match OverLength /\%81v.\+/
endif
我做错了什么?即使对于其他类型,也会突出显示所有代码/文本。我的LaTeX文件为.Rnw
,因此set ft
会产生rnoweb
。
答案 0 :(得分:1)
.vimrc
在启动时只读一次。因此,它是定义突出显示的正确位置(不添加任何条件):
highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9
但是如果你想在每次打开文件时(有或没有条件)进行匹配,你必须将:match
命令包装在自动命令(在.vimrc
中)中,例如:
au BufReadPost * if &ft=='python' || &ft!='r' | match OverLength /\%81v.\+/ | endif
答案 1 :(得分:0)
Vim具有此类文件特定语法突出显示的语法文件。
您应该在python.vim
目录下创建~/.vim/syntax/
(在非Windows计算机上)。然后将以下内容添加到python.vim
highlight OverLength ctermbg=red ctermfg=white guibg=#FFD9D9
match OverLength /\%81v.\+/
这样,您的vimrc
仍然保持干净,并且不会出现大量特定于文件类型的代码。
请参阅:h syn-files
以阅读有关语法文件的更多信息。