python - 在 vim_configurable.customize 中用 python3 覆盖 python

标签 python vim nix nixpkgs

我正在关注 this使用 Nix 配置我的自定义 vim 的模板。我的vim-config/default.nix如下:

{ pkgs }:

let
  my_plugins = import ./plugins.nix { inherit (pkgs) vimUtils fetchFromGitHub; };
in with (pkgs // { python = pkgs.python3; }); vim_configurable.customize {
  name = "vim";
  vimrcConfig = {
    customRC = ''
      syntax on
      filetype on
      " ...
    '';

    vam.knownPlugins = vimPlugins // my_plugins;
    vam.pluginDictionaries = [
      { names = [
        "ctrlp"
        # ...
      ]; }
    ];
  };
}

虽然在第 5 行有一个 (pkgs//{ python = pkgs.python3; }) 覆盖,但仍然没有使用 python3(当我运行 vim --version 它显示 +python -python3)。我错过了什么吗?

最佳答案

由于仍然有人在积极关注这个话题,我会提到有一个比我第一次遇到的更简单的解决方案:

my_vim_configurable = pkgs.vim_configurable.override {
    python = pkgs.python3;
};

我的旧答案:

事实证明with (pkgs // { python = pkgs.python3; });只修改 pythonwith 之后的范围内陈述。 python用于 vim_configurable不受影响。我最终做的是制作 vim_configurable 的 python3 版本。使用 vimUtils.makeCustomizable :

vim-config/default.nix :

{ pkgs }:

let
  my_plugins = import ./plugins.nix { inherit (pkgs) vimUtils fetchFromGitHub; };
  configurable_nix_path = <nixpkgs/pkgs/applications/editors/vim/configurable.nix>;
  my_vim_configurable = with pkgs; vimUtils.makeCustomizable (callPackage configurable_nix_path {
    inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Foundation CoreData;
    inherit (darwin) libobjc cf-private;

    features = "huge"; # one of  tiny, small, normal, big or huge
    lua = pkgs.lua5_1;
    gui = config.vim.gui or "auto";
    python = python3;

    # optional features by flags
    flags = [ "python" "X11" ];
  });

in with pkgs; my_vim_configurable.customize {
  name = "vim";
  vimrcConfig = {
    customRC = ''
      syntax on
      “...
    '';

    vam.knownPlugins = vimPlugins // my_plugins;
    vam.pluginDictionaries = [
      { names = [
        "ctrlp"
        # ...
      ]; }
    ];
  };
}

关于python - 在 vim_configurable.customize 中用 python3 覆盖 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43197204/

相关文章:

python - bokeh更新vbar数据源

使用模式行突出显示 Vim bash 语法

python - 转换为 GUI 时,int() 无法转换具有显式基数的非字符串

python - 将标题插入 Django 表单

Vim:在语法区域内启用不同类型的语法高亮?

nix - 如何在 Nix 环境中安装 PostGIS

nix - Nix 的 "callPackage"如何调用没有省略号定义的函数?

rust - nixos:我的自定义包派生在 `cargo build` 上失败

python - Bokeh 概念验证有效的动态图更新?

vim - 如何使用 Solarized 主题更改 Airline 中的 Vim Syntastic 警告颜色