2015-10-17 9 views
6

Я занимаюсь разработкой оболочки Nix (создаю файл default.nix в своем корневом каталоге проекта, а затем запустил nix-shell ., чтобы предоставить мне оболочку с доступом к зависимостям проекта) ,Получите версию GUI Spacemacs/Emacs, чтобы распознать среду nix-оболочки

Spacemacs - мой главный редактор, но когда я пытаюсь запустить версию GUI через emacs &, у меня нет доступа к программам в моей nix-оболочке (если бы я был в проекте Ruby on Rails, например, Ruby была объявлена ​​как зависимость в моем default.nix, у меня не было бы подсветки синтаксиса в Spacemacs, потому что GUI-версия Emacs не видит зависимости от Nix-оболочки). Если я запустил :!which ruby, он даже не может найти команду which.

Прямо сейчас, я запускаю spacemacs через emacs -nw и просто использую его с консоли, но мне бы очень хотелось иметь возможность использовать редактор графического интерфейса и получать все доступные цвета, а не ограничиваться теми, которые выглядят приятный в 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 к flycheck и ghc-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, но я считаю, что это, вероятно, проблема Emacs с Nix, а не общая проблема Nix. – josiah

+0

@josiah, вы установили 'which'? – Netsu

+0

не является общесистемной, но в среде разработки Nix-оболочки, которая доступна, поскольку она является частью nixpkgs.stdenv. – josiah