vim - vim 可以在运行前检查:使当前目录是当前文件的父目录吗?
问题描述
如果我在同一个 vim 会话中编辑两个项目(例如一个工具和一个外部库),我将:cd
根据需要在更改源文件之后和运行:make
.
我正在寻找一种方法来在调用 make 之前检查 vim 是否在正确的目录中。我可以更改其行为以检查当前目录是否是当前选项卡中打开的至少一个文件的父目录?
解决方案
我想说这完全取决于您如何设置环境。您描述问题的方式让我认为您没有在本地定义您&makeprg
以匹配您当前的项目(并且您没有在本地更改当前工作目录以匹配当前缓冲区)
我经常同时处理多个项目(lib0、依赖于lib0的lib1和依赖于lib1的finalproduct)。关键是在每个项目的根目录下我都有一个本地vimrc,我在本地设置&makeprg
为编译当前项目。如果我跳到另一个窗口(当前)显示属于另一个项目的缓冲区,当我键入时,:make
我会编译当前缓冲区所属的项目。
IOW,我的本地&makeprg
包含类似的东西'cd '.b:current_project_compilation_directory. ' && make $*'
- 间接地这允许我进行源外编译并模拟不同的编译模式(发布,调试......)
请注意,我在后台有另一个插件,它会自动将当前本地目录更改为当前项目的根目录(而不是当前缓冲区的目录)。
推荐阅读
- android - 用于多测验的 Kotlin Toast
- json - 将对象与 json 模式进行比较,如果未设置,则用模式默认值填充它
- haskell - lifo 队列作为光学器件
- sql - ORA-01858: 在简单的选择查询中需要数字的地方发现了一个非数字字符
- javascript - 唯一地设置元素上的属性
- microsoft-edge - 传递边缘浏览器的 processId (idAttachTo) 时,AttachThreadInput 返回 0
- macos - 如何为 HEIC 图像添加平铺支持
- business-intelligence - 将 Cognos Analytics 11 报告中的特定页面/选项卡导出为 PDF
- r - 如何解决找不到函数“get.hist.quote”的问题?
- android - 线性布局未声明