2013-06-22 57 views
0

可以說,我的工作文件src/MyString.c,當我保存我希望VIM刪除的src/MyString.o和src/MyString.debug.o或更高的src/MyString中。*。Ø。Vim:保存時刪除對象文件?

怎樣在我的.vimrc配置呢?由於

+8

爲什麼你的makefile不處理呢? –

+0

我不明白你是什麼意思?如果我不刪除的對象,則生成文件預計,它沒有改變,也不會編譯... –

+1

然後,你瘋玩了你的makefile。 –

回答

0

我也認爲你不應該需要這個和你的Makefile應該能夠把這個問題的關心。但是,直到你改正你的Makefile,這可能幫助:

function! RemoveObject() 
    let objectfile = substitute(expand('%:p'), '.c$', '.o', '') 
    let rmcommand = "rm -f " . objectfile 
    let error = system(rmcommand) 
endfunction 

autocmd BufWritePost *.c call RemoveObject() 
+2

這裏有兩個錯誤:1. substitute(,'.c $',,)將在任何以'c'結尾的文件上工作(點意味着「任何字符」,並且帶有'%:p',那麼至少還會有目錄分隔符)和2.你必須使用shellescape。整個事情可以用'autocmd! BufWritePost * .c:無聲! (第一個也是最後一個應該是'augroup RemoveObject'和'augroup END')。注意:沒有'​​rm -f'和shellescape,vim具有內置刪除文件的功能。 – ZyX

+0

哇。 ZyX有一些很酷的建議。謝謝!我在哪裏可以找到'[:-3]'的文檔?我從來沒有見過這個,想一想它如何工作,並想了解更多。 – innaM

+0

啊!找到了。對於任何感興趣的人,請嘗試':help expr - [:]' – innaM

相關問題