在vim中设置"构建目录"?

12

有没有办法告诉vim在特定目录下运行makeprg? 我使用每个项目的.vimrc文件,看起来这是通知vim每个项目应该在哪里构建的完美位置,无论当前目录如何。

1个回答

10
 :let &makeprg='(cd /tmp && make)'

对我来说似乎工作得很好

 :se makepgr="(cd %:h/.. && make)" 

使它回到父目录

我曾在Windows上尝试了上述方法,可行;但今天我在Linux上发现我需要使用以下咒语才能使其正常工作:

:let &makeprg='(cd %:h/.. && make)'

注意 我假设您实际上并未使用make,因为这只需一个简单的:make -C /tmp即可完成。

注意 大多数其他自动化构建系统都有类似的选项,例如:!scons -C /tmp


另一个有用的技巧是创建一个名为make_wrapper的脚本或类似的东西,它查看环境变量(例如MY_BUILD_DIR),如果设置了,则执行:make -C $MY_BUILD_DIR $@,否则执行普通的make。然后在vim中将makeprg设置为该脚本,而不是make。这样,您也可以在vim之外获得相同的行为。 - Neg_EV
2
@Neg_EV:也许只需要 :let &mp='make -C $MY_BUILD_DIR' 就可以了。 - sehe
@sehe 我希望即使MY_BUILD_DIR没有设置也能正常工作。你也可以用一行代码实现,但我也会从命令行执行这些操作。因此,有一个脚本可以将make_wrapper别名设置为make是很有用的,这样我只需要在一个地方解决问题。 - Neg_EV
@sehe 如果你还想继续使用-C或--directory,你可以很容易地将该参数检查添加到脚本中。 - Neg_EV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接