Nix:用 Ruby 编译 Vim
Nix: Compile Vim with Ruby
我在 OS X 上使用 Nix 包管理器。假设为了论证,我有一个 config.nix
文件,它使用这样的模式,允许我安装 vimEnv
没问题。
# ~/.nixpkgs/config.nix
{ pkgs }: {
# Looking around I have seen overrides something along these lines...
# nixpkgs.config.packageOverrides = pkgs: rec {
# vim = pkgs.vim_configurable.override {
# ruby = true;
# };
# };
packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {
myEnv = pkgs.buildEnv {
name = "myEnv";
paths = [
# ...snip
vim
# ...snip
];
};
};
}
我知道有详细的选项可用于使用 Nix 维护 .vimrc
和 vim 插件,并通过覆盖 vim_configurable
选项等 (for example),如果能在某个时候抽出时间做这件事就好了。然而,我现在想做的就是通过 Nix 安装一个 Vim 版本,它编译时支持 Ruby。
在我的 config.nix
中实现此目标的最简单或最简洁的方法是什么?
您可以尝试自己编译vim。为了以这种方式获得 ruby 支持,您所要做的就是在 运行 ./configure
时添加 --rubyinterp
标志
而且,经过一些黑客攻击,这是我找到的最简单的解决方案:
# ~/.nixpkgs/config.nix
{ pkgs }: {
packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {
myVim = pkgs.vim_configurable.override {
config.vim = {
ruby = true;
};
ruby = ruby;
};
myEnv = pkgs.buildEnv {
name = "myEnv";
paths = [
myVim
];
};
};
}
并使用 nix-env -i myEnv
安装它。
我在 OS X 上使用 Nix 包管理器。假设为了论证,我有一个 config.nix
文件,它使用这样的模式,允许我安装 vimEnv
没问题。
# ~/.nixpkgs/config.nix
{ pkgs }: {
# Looking around I have seen overrides something along these lines...
# nixpkgs.config.packageOverrides = pkgs: rec {
# vim = pkgs.vim_configurable.override {
# ruby = true;
# };
# };
packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {
myEnv = pkgs.buildEnv {
name = "myEnv";
paths = [
# ...snip
vim
# ...snip
];
};
};
}
我知道有详细的选项可用于使用 Nix 维护 .vimrc
和 vim 插件,并通过覆盖 vim_configurable
选项等 (for example),如果能在某个时候抽出时间做这件事就好了。然而,我现在想做的就是通过 Nix 安装一个 Vim 版本,它编译时支持 Ruby。
在我的 config.nix
中实现此目标的最简单或最简洁的方法是什么?
您可以尝试自己编译vim。为了以这种方式获得 ruby 支持,您所要做的就是在 运行 ./configure
--rubyinterp
标志
而且,经过一些黑客攻击,这是我找到的最简单的解决方案:
# ~/.nixpkgs/config.nix
{ pkgs }: {
packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {
myVim = pkgs.vim_configurable.override {
config.vim = {
ruby = true;
};
ruby = ruby;
};
myEnv = pkgs.buildEnv {
name = "myEnv";
paths = [
myVim
];
};
};
}
并使用 nix-env -i myEnv
安装它。