有没有办法在 .spacemacs 文件中检测我们在哪个平台?

Is there a way to detect which platform we are in it, inside .spacemacs file?

我正在使用 spacemacs,我想根据我所在的平台 为组织模式 声明 不同的路径它。

例如,如果我在 Linux,我希望路径是 ~/orgs,但如果我在 windows,路径应该是 D:\orgs\

是否有变量可以查看当前平台?

使用命令

systeminfo | findstr /B /C:"OS Name" /C:"OS Version" Will return the OS name and version. Put that in variable after running the command and then do some comparison tests.

看到这个link: https://www.windows-commandline.com/find-windows-os-version-from-command/

解决方案之一(感谢 spacemacs 的 gitter 网站上的@dalanicolai 和@milochadam 提供的所有帮助)是您 在内部声明您的条件 user-init () 例如,我声明了两个全局变量:snippet_pathorg_path 它们将根据平台获得不同的值(Linux/windows):

(defun dotspacemacs/user-init ()
;; ... other stuff

(if (or (equal system-type 'cygwin) (equal system-type 'windows-nt) (equal system-type 'ms-dos))
    ;; if we are in windows
      (progn
        (setq snippet_path "e:/home/snippets")
        (setq org_path "d:/org-mode/todo.org")
      )
    ;; else if (we are in linux)
      (progn
        (setq snippet_path "/home/ghost/spacemacs/snippets")
        (setq org_path "d:/org-mode/todo.org")
      )
  )

;; ... other stuff
)

现在我们可以在任何我们喜欢的地方使用这两个变量,例如在我们的图层配置中:


(auto-completion :variables                      
                  auto-completion-private-snippets-directory snippet_path
)