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.nix
Strukturen, aber die Syntax b.nix
ist 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-vim
kann ihn jetzt sehenyaml