获取Spacemacs / Emacs GUI版本以识别nix

我在Nix shell中进行开发(在我的项目根目录下创建一个default.nix文件,然后运行nix-shell . ,为我提供一个可以访问项目依赖项的shell)。

Spacemacs是我的主要编辑器,但是当我尝试通过emacs &运行GUI版本时emacs &我无法访问我的nix-shell中的程序(例如,如果我在Ruby on Rails项目中,并且Ruby被声明为在我的default.nix有一个依赖项,因为Emacs的GUI版本没有看到我的Nix-shell依赖关系,所以我在Spacemacs中没有语法高亮。 如果我运行:!which ruby ,它甚至不能找到which命令。

现在,我通过emacs -nw nw运行spacemacs并从控制台使用它,但我真的希望能够使用GUI编辑器并获得完整的颜色方案,而不仅限于那些看起来不错的颜色方案256色模式。 我在终端和编辑器之间切换也比在tmux窗格或终端分离之间切换到我的CLI编辑器更快。

with import <nixpkgs> {}; {
  cannyFreeRadicalEnv = stdenv.mkDerivation rec {
    name = "rails-project-env";
    version = "0.1";
    src = ./.;
    buildInputs = [
        stdenv
        ruby_2_2_2
        bundler
        zlib
        postgresql94
        sqlite
        zsh
        git
        nodejs-0_12
    ];
  };
}

我可以通过在守护进程模式下运行空间emacs来解决此问题。 https://www.emacswiki.org/emacs/EmacsAsDaemon

在default.nix目录下: nix-shell . emacs --daemon emacsclient -c -a emacs nix-shell . emacs --daemon emacsclient -c -a emacs


你可以运行你的GUI Emacs

setsid nix-shell . --command "emacs" &> /dev/null

另请参阅关于nix-shellflycheckghc-mode集成的讨论。


提示:您可以在.zshrc或.bashrc中使用别名

run-nix-emacs () {
  setsid nix-shell . --command "emacs" &> /dev/null
}

alias ne='run-nix-emacs'
链接地址: http://www.djcxy.com/p/88367.html

上一篇: Get Spacemacs/Emacs GUI version to recognize nix

下一篇: Gulp, using current filename in `pipe()` function