一个自动去除行尾多余空白的小插件

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()
"}}}

使用方法

这款插件的使用方法非常简单,其在每次保存文件时被自动调用,自动去除行尾多余的空白,读者可以按照自己的需求,绑定不同后缀的文件,以加快自己的编辑效率。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐