2013-06-22 48 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

相关问题