Проблема с объединением двух простых dot nix-файлов для nix-shell

Проблема с объединением двух простых dot nix-файлов для nix-shell

Я новичок в 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

введите описание изображения здесь

Связанный контент