在Git中提交一些文件时,我得到了“尾随空白”错误。
我想在保存Python文件之前自动删除这些尾随的空白字符。
您可以配置Vim来实现这一点吗?如果有,怎么做?
在Git中提交一些文件时,我得到了“尾随空白”错误。
我想在保存Python文件之前自动删除这些尾随的空白字符。
您可以配置Vim来实现这一点吗?如果有,怎么做?
当前回答
下面是一种通过多个FileType进行过滤的方法。
autocmd FileType c,cpp,python,ruby,java autocmd BufWritePre <buffer> :%s/\s\+$//e
其他回答
下面是一种通过多个FileType进行过滤的方法。
autocmd FileType c,cpp,python,ruby,java autocmd BufWritePre <buffer> :%s/\s\+$//e
编译以上加上保存光标位置:
function! <SID>StripTrailingWhitespaces()
if !&binary && &filetype != 'diff'
let l:save = winsaveview()
keeppatterns %s/\s\+$//e
call winrestview(l:save)
endif
endfun
autocmd FileType c,cpp,java,php,ruby,python autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces()
如果你想在保存到任何文件时应用此命令,请省略第二个autocmd并使用通配符*:
autocmd BufWritePre,FileWritePre,FileAppendPre,FilterWritePre *
\ :call <SID>StripTrailingWhitespaces()
我通常也有一个:
match Todo /\s\+$/
在我的.vimrc文件中,使行末空格高亮显示。
Todo是一个语法高亮组名,用于高亮Todo、FIXME或XXX等关键字。它有一个讨厌的丑陋的黄色背景色,我发现它是最好的突出你不想在你的代码中的东西:-)
在.vimrc文件中使用时,这里的其他方法在MacVim中不知何故对我不起作用。这里有一个这样的例子,它突出显示了尾随空格:
set encoding=utf-8
set listchars=trail:·
set list
autocmd BufWritePre *: % s / \ \ + $ / / < CR >:让@ / = " < CR >