在Git中提交一些文件时,我得到了“尾随空白”错误。
我想在保存Python文件之前自动删除这些尾随的空白字符。
您可以配置Vim来实现这一点吗?如果有,怎么做?
在Git中提交一些文件时,我得到了“尾随空白”错误。
我想在保存Python文件之前自动删除这些尾随的空白字符。
您可以配置Vim来实现这一点吗?如果有,怎么做?
当前回答
我就是这么做的。我不记得从哪里偷来的了。
autocmd BufWritePre * :call <SID>StripWhite()
fun! <SID>StripWhite()
%s/[ \t]\+$//ge
%s!^\( \+\)\t!\=StrRepeat("\t", 1 + strlen(submatch(1)) / 8)!ge
endfun
其他回答
我在这里找到了答案。
在我的.vimrc文件中添加以下内容就成功了:
autocmd BufWritePre *.py :%s/\s\+$//e
末尾的标志表示如果搜索模式失败,该命令不会发出错误消息。。更多信息请参见:h:s_flags。
我通常也有一个:
match Todo /\s\+$/
在我的.vimrc文件中,使行末空格高亮显示。
Todo是一个语法高亮组名,用于高亮Todo、FIXME或XXX等关键字。它有一个讨厌的丑陋的黄色背景色,我发现它是最好的突出你不想在你的代码中的东西:-)
从http://blog.kamil.dworakowski.name/2009/09/unobtrusive-highlighting-of-trailing.html复制粘贴(链接不再工作,但你需要的位在下面)
这样做的好处是不会突出显示你在行末键入的每个空格,只有当你打开文件或退出插入模式时才会突出显示。非常整洁。”
highlight ExtraWhitespace ctermbg=red guibg=red
au ColorScheme * highlight ExtraWhitespace guibg=red
au BufEnter * match ExtraWhitespace /\s\+$/
au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
au InsertLeave * match ExtraWhiteSpace /\s\+$/
我就是这么做的。我不记得从哪里偷来的了。
autocmd BufWritePre * :call <SID>StripWhite()
fun! <SID>StripWhite()
%s/[ \t]\+$//ge
%s!^\( \+\)\t!\=StrRepeat("\t", 1 + strlen(submatch(1)) / 8)!ge
endfun
在.vimrc文件中使用时,这里的其他方法在MacVim中不知何故对我不起作用。这里有一个这样的例子,它突出显示了尾随空格:
set encoding=utf-8
set listchars=trail:·
set list