可以说,我的工作文件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。 –