在 elisp 中获取当前弹丸根路径

Posted

技术标签:

【中文标题】在 elisp 中获取当前弹丸根路径【英文标题】:Get current projectile root path in elisp 【发布时间】:2017-08-18 19:44:47 【问题描述】:

有没有办法在elisp中获取当前弹丸根路径。

类似于eproject.中的命令eproject-root的东西

谢谢

【问题讨论】:

【参考方案1】:

有!该函数称为projectile-project-root。您可以在我的 virtualenvwrapper.el 项目中看到使用 here 的示例。

【讨论】:

【参考方案2】:

没有单一的方法可以做到这一点,因为项目根目录的定义没有内置到 emacs 中。

您可以致电:

ffip-project-root find-file-in-project 的用户。 projectile-project-rootprojectile 的用户。

不依赖第三方包,您可以直接使用vc(假设项目使用版本控制)。

(defun my-vc-root-path-or-default (filepath &optional default)
  "Return the version control directory from FILEPATH or DEFAULT."
  (let ((vc-base-path default))
    (condition-case err
      (let ((vc-backend (ignore-errors (vc-responsible-backend filepath))))
        (when vc-backend
          (setq vc-base-path (vc-call-backend vc-backend 'root filepath))))
      (error (message "Error creating vc-backend root name: %s" err)))
    vc-base-path))

【讨论】:

以上是关于在 elisp 中获取当前弹丸根路径的主要内容,如果未能解决你的问题,请参考以下文章

java 项目如何获取项目所在的物理根路径

js获取项目根路径

java中类加载路径和项目根路径获取有几种方式?

C#获取项目的路径

如何在 ASP.NET Core 中获取 Web 根路径和内容根路径?

Java获取此次请求URL以及服务器根路径的方法