【问题标题】:Nix: Compile Vim with RubyNix:用 Ruby 编译 Vim
【发布时间】:2016-07-20 02:01:49
【问题描述】:

我在 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 和覆盖 vim_configurable 选项等 (for example) 来维护 .vimrc 和 vim 插件,如果有时间这样做会很高兴在某一点。但是,我现在要做的就是通过 Nix 安装一个使用 Ruby 支持编译的 Vim 版本。

在我的config.nix 中实现这一目标的最简单或最简洁的方法是什么?

【问题讨论】:

    标签: ruby vim nix


    【解决方案1】:

    你可以尝试自己编译 vim。为了以这种方式获得 ruby​​ 支持,您只需在运行 ./configure 时添加 --rubyinterp 标志

    【讨论】:

    • 是的,没错,但我真的只是想用 Nix 来做这件事,所以它是声明性的,我永远不必手动做!​​span>
    【解决方案2】:

    而且,经过一些黑客攻击,这是我找到的最简单的解决方案:

    # ~/.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 安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      相关资源
      最近更新 更多