【发布时间】:2018-11-30 01:37:09
【问题描述】:
在我的 vimrc 中,我有一个脚本可以在 * * 双星 * * 之间用粗体转换文本(实际上就像在这个编辑器中一样),但我不希望它应用于我的 js 或 c 或当然,任何编程文件,所以我试图让它只在它是一个 .txt 文件时运行:
if (&filetype=='text')
set concealcursor=n
set conceallevel=3
hi AsteriskBold ctermfg=Green cterm=bold
autocmd BufEnter * syn match Asterisks contained "**" conceal
autocmd BufEnter * syn match AsteriskBold "\*\*.*\*\*" contains=Asterisks
endif
但显然“如果”的条件不起作用,因为此规则不再适用于我的任何文件、文本或非文本
编辑 => 解决方案
阅读答案后,我在我的 vimrc 中选择了这个解决方案(尽管它不是 ingo 解释的 vim 工作的最佳方式)
au BufEnter *.txt setf text "(set a filetype unless it already exist)
au filetype text set cocu=n cole=3
au filetype text hi AsteriskBold ctermfg=Green cterm=bold
au filetype text syn match Asterisks contained "**" conceal
au filetype text syn match AsteriskBold "\*\*.*\*\*" contains=Asterisks
【问题讨论】: