【发布时间】:2014-09-01 15:34:17
【问题描述】:
在我保存文件之前,我已经设置了 vim 以从行尾修剪空白,并确保如果我正在编辑 .py 文件,文件末尾只有一个空白行。但是,函数调用最终会出现在撤消历史记录中;如何在无法撤消它们的情况下运行这些函数?
fun! <SID>StripTrailingWhitespaces()
let l = line(".")
let c = col(".")
%s/\s\+$//e
call cursor(l, c)
endfun
autocmd FileType * autocmd BufWritePre <buffer> :call <SID>StripTrailingWhitespaces()
function TrimEndLines()
let save_cursor = getpos(".")
:silent! %s#\($\n\s*\)\+\%$##
call setpos('.', save_cursor)
endfunction
au BufWritePre * call TrimEndLines()
function AppendEndLine()
let save_cursor = getpos(".")
:silent! %s/^\(.*\)\%$/\1\r/
call setpos(".", save_cursor)
endfunction
au BufWritePre * call AppendEndLine()
【问题讨论】:
-
出于好奇,为什么要在 python 脚本的末尾多出一个空行?
-
原因很多,总结的很好:stackoverflow.com/questions/729692/…PEP8推荐。
-
嗯……不,PEP8 中没有提到该建议,如果有建议,文件的最后一行将以换行符结尾,而不是空的。 Vim 已经以换行符结束每一行,除非你另有说明。
标签: vim