Ben*_*Ben 5 python vim nix nixpkgs
我正在遵循此模板来使用 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"
# ...
]; }
];
};
}
Run Code Online (Sandbox Code Playgroud)
尽管(pkgs // { python = pkgs.python3; })
第 5 行有一个覆盖,但仍然没有使用 python3(当我运行vim --version
它时显示+python -python3
)。我错过了什么吗?
由于仍然有人积极关注这个话题,我会提到有一个比我第一次来的更简单的解决方案:
my_vim_configurable = pkgs.vim_configurable.override {
python = pkgs.python3;
};
Run Code Online (Sandbox Code Playgroud)
我的旧答案:
事实证明,with (pkgs // { python = pkgs.python3; });
仅python
在with
语句后面的范围内进行修改。中python
使用vim_configurable
不受影响。我最终做的是制作一个 python3 版本的vim_configurable
using 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"
# ...
]; }
];
};
}
Run Code Online (Sandbox Code Playgroud)