Nixos

為 nix-shell 合併兩個簡單的點 nix 文件時遇到問題

  • May 28, 2017

我是 nix 表達式的新手。我找到了兩個我想在 nix-shell 中使用的配置文件。

不幸的是,由於我缺乏 nix 表達式知識,我未能合併它們。總是以語法錯誤告終。

a.nix用於設置 custom 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\]"
 '';
}

b.nix用於 python 覆蓋。我需要這個來使jedi-vim工作。

with import <nixpkgs> {};

( pkgs.python3.buildEnv.override  {
 extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
}).env

我確實了解a.nix結構,但語法b.nix不同。

我該怎麼做?

除了 nixos手冊,還有什麼更簡單的資源可以學習嗎?

通過以下配置解決。

{ 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

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/367391