如何在vim中删除文件类型扩展名

时间:2010-03-16 10:17:21

标签: vim

在我的.vimrc中,我根据源文件类型设置了不同的makeprg,如下所示:

au BufRead,BufNewFile /home/me/cpp/**/**.cc set makeprg=g++\ %"
au BufRead,BufNewFile /home/me/c/**/**.c set makeprg=gcc\ %\"

这是很好的实践但不完美。这个设置的问题是你可以在某个目录下使用默认名称a.out的二进制文件。

为了更清楚地说,让我们说在同一个指令下有client.c和server.c。 在vim中编译client.c之后,应该先将a.out重命名为其他名称 可以编辑server.c并将其编译为vim。否则现有的a.out将被覆盖。

所以我想通过为gcc或g ++添加-o选项来改进设置,以明确地给二进制文件命名,而不是将其命名为“a.out”。而且我还想使用没有fiel类型扩展名的源文件名作为gvien源文件的二进制名称。例如,对于client.c,生成的二进制文件的名称将只是客户端。

只需要你的帮助告诉我在vim中如何做到这一点。提前谢谢。

1 个答案:

答案 0 :(得分:2)

请参阅:help expand。如果你执行%:r,你将获得当前文件名,减去其上的最后一个扩展名。您更改的命令是:

au BufRead,BufNewFile /home/me/cpp/**/**.cc set makeprg=g++\ %\ -o\ %:r
au BufRead,BufNewFile /home/me/c/**/**.c set makeprg=gcc\ %\ -o\ %:r