Probleme beim Zusammenführen zweier einfacher Dot-Nix-Dateien für Nix-Shell

Probleme beim Zusammenführen zweier einfacher Dot-Nix-Dateien für Nix-Shell

Ich bin neu bei Nix Expression. Ich habe zwei Konfigurationsdateien gefunden, die ich in der Nix-Shell verwenden möchte.

Leider konnte ich sie aufgrund meiner mangelnden Kenntnisse über Nix-Ausdrücke nicht zusammenführen. Das endete immer mit einem Syntaxfehler.

a.nixdient zum Einstellen von benutzerdefinierten shellHook. Hier vereinfacht zum Einstellen von$PS1

{ pkgs ? import <nixpkgs> {}  }:

with pkgs;

stdenv.mkDerivation {
  name = "python3-shell";
  buildInputs = [ ];

  shellHook = ''
    export PS1="\[\033[1;32m\][nix-shell:\w]\n$ \[\033[0m\]"
  '';
}

b.nixist für Python-Override. Ich brauche das, umJedi-Vimmearbeiten.

with import <nixpkgs> {};

( pkgs.python3.buildEnv.override  {
  extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
}).env

Ich verstehe zwar a.nixStrukturen, aber die Syntax b.nixist anders.

Wie soll ich es machen?

Gibt es eine einfachere Ressource zum Lernen neben NixosHandbuch?

Antwort1

Gelöstmit folgender Konfiguration.

{ 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\]"
  '';
}

Habe den Code immer noch nicht ganz verstanden, aber irgendwie habe ich die gewünschte Eingabeaufforderung erhalten und jedi-vimkann ihn jetzt sehenyaml

Bildbeschreibung hier eingeben

verwandte Informationen