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

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

저는 nix 표현을 처음 사용합니다. 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

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

관련 정보