一个自动去除行尾多余空白的小插件
By 马冬亮(凝霜 Loki)
一个人的战争(http://blog.csdn.net/MDL13412)
简介
大名鼎鼎的移动支付公司Square开源了其技术团队所使用的vim配置(项目链接),我在其中发现了whitespace这个小插件,感觉很使用,特此分享给大家。
whitespace插件的源码(修改版)
" thanks to http://vimcasts.org/e/4
function! WhitespaceStripTrailing()
let previous_search=@/
let previous_cursor_line=line('.')
let previous_cursor_column=col('.')
%s/\s\+$//e
let @/=previous_search
call cursor(previous_cursor_line, previous_cursor_column)
endfunction
我去掉了下面的代码:
" strip trailing whitespace on Ruby buffer saves
augroup whitespace
autocmd BufWritePre *.rb call whitespace#strip_trailing()
augroup END
我将对应文件的绑定操作移到了.vimrc中,这样可以很方便的扩展新语言的支持,而且更方便集中管理,.vimrc中相应的代码片段如下:
"{{{ whitespace 去除文件的行尾空白
autocmd BufWritePre *.py call WhitespaceStripTrailing()
autocmd BufWritePre *.h call WhitespaceStripTrailing()
autocmd BufWritePre *.c call WhitespaceStripTrailing()
autocmd BufWritePre *.cpp call WhitespaceStripTrailing()
"}}}
使用方法
这款插件的使用方法非常简单,其在每次保存文件时被自动调用,自动去除行尾多余的空白,读者可以按照自己的需求,绑定不同后缀的文件,以加快自己的编辑效率。