禁用一种文件类型的空白高亮显示

时间:2014-12-06 15:11:18

标签: vim

我在vimrc中使用此代码段突出显示所有文件的尾随空格:

hi link TrailingWhiteSpace Search
au BufWinEnter * let w:twsm=matchadd('TrailingWhiteSpace', '\s\+$')
" Setup a toggle.
nnoremap <silent> <Leader>w
  \ :if exists('w:twsm') <Bar>
  \   silent! call matchdelete(w:twsm) <Bar>
  \   unlet w:twsm <Bar>
  \ else <Bar>
  \   let w:twsm = matchadd('TrailingWhiteSpace', '\s\+$') <Bar>
  \ endif<CR>

但是我也在Vim写电子邮件,因为我使用Mutt并使用format=flowed来避免硬换行。我在muttrc

中设置了这个
set text_flowed=yes

并在我的vimrc

中有这个
augroup ft_mail
    au!

    au FileType mail setlocal fo+=aw
augroup END

实现这一点。

这给了我Vim中的视觉换行符,但没有在实际的电子邮件中引入硬换行符。然而,这种设置(以及一般的电子邮件)往往在各个地方都有尾随空格,我很好,所以我不想强调它。

如何在编写电子邮件时停止追踪空白?如果有帮助,我会更好地突出显示空格。

1 个答案:

答案 0 :(得分:2)

您可以引入缓冲区本地b:IgnoreTrailingWhitespace变量,在~/.vim/ftplugin/mail.vim中设置该变量,并在您的autocmds中通过exists('b:IgnoreTrailingWhitespace')进行考虑。

或者,看看我的ShowTrailingWhitespace plugin;它具有内置的功能,甚至包含mail文件类型(以及其他)的例外!