2015-10-17 81 views
6

我在Nix shell中開發(在我的項目根目錄下創建一個default.nix文件,然後運行nix-shell .爲我提供一個可訪問項目依賴項的shell) 。獲取Spacemacs/Emacs GUI版本以識別nix-shell環境

Spacemacs是我的主要編輯器,但是當我嘗試通過emacs &運行GUI版本時,我無法訪問我的nix-shell中的程序(例如,如果我在Ruby on Rails項目中,例如Ruby在我的default.nix中被聲明爲依賴項,因爲Emacs的GUI版本沒有看到我的Nix-shell依賴項,所以我在Spacemacs中沒有語法高亮顯示。如果我運行:!which ruby,它甚至找不到which命令。

現在,我通過emacs -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 
    ]; 
    }; 
} 
+0

有什麼不對這個問題? – josiah

回答

3

您可以運行GUI的Emacs作爲

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

也看到nix-shellintegration討論flycheckghc-mode


提示:您可以使用別名這是你.zshrc的.bashrc

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

alias ne='run-nix-emacs' 
+0

我試過了。回答是,運行':!哪個ruby'仍然說它找不到'which'命令,並且我的Ruby配置層仍然不可用,因爲找不到irb和ruby命令。我將通讀您提供給flycheck和ghc-mod討論的鏈接,但我的感覺是,這可能是一個帶Nix問題的Emacs,而不是一般的Nix問題。 – josiah

+0

@josiah,你安裝了哪個? – Netsu

+0

不是全系統的,而是在Nix-shell開發環境中,因爲它是nixpkgs.stdenv的一部分,所以可用。 – josiah