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

尼克斯用于 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

在此输入图像描述

相关内容