nix-shell에 대해 두 개의 간단한 dot nix 파일을 병합하는 데 문제가 있습니다.

nix-shell에 대해 두 개의 간단한 dot nix 파일을 병합하는 데 문제가 있습니다.

저는 nix Express를 처음 사용합니다. nix-shell에서 사용하고 싶은 두 개의 구성 파일을 찾았습니다.

아쉽게도 nix 표현 지식이 부족하여 병합할 수 없었습니다. 항상 구문 오류로 끝납니다.

닉스사용자 정의를 설정하는 데 사용됩니다 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\]"
  '';
}

닉스파이썬 적용을 위해. 나한테는 이게 필요해제다이 윔일하다.

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

여기에 이미지 설명을 입력하세요.

관련 정보