可以說,我的工作文件src/MyString.c,當我保存我希望VIM刪除的src/MyString.o和src/MyString.debug.o或更高的src/MyString中。*。Ø。Vim:保存時刪除對象文件?
怎樣在我的.vimrc配置呢?由於
可以說,我的工作文件src/MyString.c,當我保存我希望VIM刪除的src/MyString.o和src/MyString.debug.o或更高的src/MyString中。*。Ø。Vim:保存時刪除對象文件?
怎樣在我的.vimrc配置呢?由於
我也認爲你不應該需要這個和你的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()
這裏有兩個錯誤:1. substitute(,'.c $',,)將在任何以'c'結尾的文件上工作(點意味着「任何字符」,並且帶有'%:p',那麼至少還會有目錄分隔符)和2.你必須使用shellescape。整個事情可以用'autocmd! BufWritePost * .c:無聲! (第一個也是最後一個應該是'augroup RemoveObject'和'augroup END')。注意:沒有'rm -f'和shellescape,vim具有內置刪除文件的功能。 – ZyX
哇。 ZyX有一些很酷的建議。謝謝!我在哪裏可以找到'[:-3]'的文檔?我從來沒有見過這個,想一想它如何工作,並想了解更多。 – innaM
啊!找到了。對於任何感興趣的人,請嘗試':help expr - [:]' – innaM
爲什麼你的makefile不處理呢? –
我不明白你是什麼意思?如果我不刪除的對象,則生成文件預計,它沒有改變,也不會編譯... –
然後,你瘋玩了你的makefile。 –