2014-01-05 100 views
3

此功能是編輯其他項目,編輯器如textmate和sublime時所關注的問題之一我相信爲最後一行添加換行符,但是當編輯結束部分與vim文件並保存它我有時忘記添加最後一個換行符。如何在保存到VIM時在文件末尾添加/保留換行符

那麼,我該如何自動執行此操作,並確保文件最後至少有一個新行。

+0

嗯,我測試過vim,如果打開一個文件並強制寫入,最後換行總是被添加。你有具體的選項,防止vim對這個修復? – Netch

+0

@Netch我檢查過'.vimrc'我沒有任何這樣的選項,我想知道如何明確地告訴VIM在最後添加新行。 –

回答

4

我不記得在vim中是否有這個構建的解決方案。檢查下面的代碼段。它會在文件末尾添加空行。

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

autocmd BufWritePre * call AddLastLine() 
+0

完美的作品!出於好奇。最後一行'autocmd BufWritePre * call AddLastLine()'是否意味着何時保存所有類型的文件?如何將其進一步自定義以僅在/排除特定文件類型。萬分感謝。 –

+1

使用'autocmd BufWritePre * .c \ | * .cpp \ | * .java \ | * .py調用AddLastLine()',但它只適用於指定的擴展名,您希望filetypes更好的方式是'autocmd FileType c ,cpp,java,python autocmd BufWritePre *調用AddLastLine()'。 – kTT

相關問題