如何在VIM中保存时在文件末尾添加/维护换行符

如何在VIM中保存时在文件末尾添加/维护换行符,vim,Vim,这个特性是编辑其他项目时需要考虑的问题之一,我相信像textmate和sublime这样的编辑器会为最后一行添加换行符,但是当我用vim编辑文件的结尾部分并保存它时,有时会忘记添加最后的换行符 那么,我如何使这一过程自动化,并确保文件的末尾始终至少有一行新行。我不记得vim中是否有此构建的解决方案。检查下面的代码片段。它将在文件末尾添加空行 function! AddLastLine() if getline('$') !~ "^$" call append(line('

这个特性是编辑其他项目时需要考虑的问题之一,我相信像textmate和sublime这样的编辑器会为最后一行添加换行符,但是当我用vim编辑文件的结尾部分并保存它时,有时会忘记添加最后的换行符


那么,我如何使这一过程自动化,并确保文件的末尾始终至少有一行新行。

我不记得vim中是否有此构建的解决方案。检查下面的代码片段。它将在文件末尾添加空行

function! AddLastLine()
    if getline('$') !~ "^$"
        call append(line('$'), '')
    endif
endfunction

autocmd BufWritePre * call AddLastLine()

嗯,我已经测试了vim,如果打开一个文件并强制写入,最后一行总是被添加。您是否有阻止vim进行此修复的特定选项?@Netch我已经选中了
。vimrc
我没有任何此类选项,我想知道如何明确地告诉vim在末尾添加新行。效果非常好!出于好奇。最后一行
autocmd BufWritePre*call AddLastLine()
表示保存各种文件时,对吗?如何进一步自定义此项以仅处理/排除特定文件类型。非常感谢。使用
autocmd-BufWritePre*.c\\\*.cpp\\\\*.java\\\*.py call AddLastLine()
但它只适用于指定的扩展名,您需要文件类型,因此更好的方法是使用
autocmd-FileType c,cpp,java,python-autocmd-BufWritePre*call AddLastLine()