如果我在同一个vim会话中编辑两个项目(例如,一个工具和一个外部库),则在更改源文件之后并运行{{1 }}。
我正在寻找一种在调用make之前检查vim是否在正确目录中的方法。我可以更改其行为以检查当前目录是否是在当前选项卡中打开的至少一个文件的父目录吗?
答案 0 :(得分:1)
我要说的一切都取决于您如何设置环境。问题的描述方式使我认为您没有在本地定义&makeprg
来匹配您当前的项目(并且您没有本地更改当前工作目录以匹配当前缓冲区)
我经常同时处理多个项目( lib0 , lib1 (取决于 lib0 和 finalproduct 取决于 lib1 )。关键是在每个项目的根目录中,我有一个local vimrc,在这里我本地设置&makeprg
来编译当前项目。如果我跳到另一个窗口(当前)以显示属于另一个项目的缓冲区,则在键入:make
时,我将编译当前缓冲区所属的项目。
IOW,我的本地&makeprg
包含类似'cd '.b:current_project_compilation_directory. ' && make $*'
的内容-间接地,这使我可以进行源外编译并模拟不同的编译模式(发布,调试...)>
请注意,我在幕后还有另一个插件automatically changes the current local directory to the root directory of the current project(而不是当前缓冲区的目录)。