Я новичок в nix expression. Я нашел два файла конфигурации, которые хочу использовать в nix-shell.
К сожалению, мне не удалось объединить их из-за отсутствия знаний о выражениях nix. Всегда заканчиваются синтаксической ошибкой.
а.никсдля настройки custom shellHook
. Здесь упрощено для просто настройки$PS1
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
stdenv.mkDerivation {
name = "python3-shell";
buildInputs = [ ];
shellHook = ''
export PS1="\[\033[1;32m\][nix-shell:\w]\n$ \[\033[0m\]"
'';
}
б.никсдля переопределения python. Мне это нужно, чтобы сделатьджедай-вимработа.
with import <nixpkgs> {};
( pkgs.python3.buildEnv.override {
extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
}).env
Я понимаю a.nix
структуры, но синтаксис b.nix
другой.
Как я должен это делать?
Есть ли более простой ресурс для изучения, кроме nixos?руководство?
решение1
Решеносо следующей конфигурацией.
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
let py3s = pkgs.python3.buildEnv.override {
extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
};
in stdenv.mkDerivation {
name = "python3-shell";
buildInputs = [ py3s ];
shellHook = ''
export PS1="\[\033[1;32m\][nix-shell:\w]\n$ \[\033[0m\]"
'';
}
Пока еще не до конца понял код, но каким-то образом получил подсказку о желании и jedi-vim
теперь могу видетьyaml