nix-shellの2つの単純なdot nixファイルをマージするのに問題があります。

nix-shellの2つの単純なdot nixファイルをマージするのに問題があります。

私はnix Expressを初めて使用します。 nix-shellで使用したい2つの設定ファイルが見つかりました。

残念ながら、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\]"
  '';
}

ニックス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

ここに画像の説明を入力してください。

関連情報