2016-03-31 9 views
0

Ich benutze den Nix-Paket-Manager auf OS X. Sagen wir um des Arguments willen habe ich eine config.nix Datei, die ein Muster wie folgt verwendet, so dass ich die vimEnv kein Problem installieren kann.Nix: kompiliere Vim mit Ruby

# ~/.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 
     ]; 
    }; 

    }; 
} 

Ich weiß, dass es aufwendige Möglichkeiten für ein .vimrc und vim plugins Aufrechterhaltung Nichts mit und durch vim_configurable Optionen überschreiben und so weiter (for example), und es wäre schön, die Zeit zu finden um einige zu tun, dass Punkt. Alles, was ich jetzt noch tun möchte, ist über Nix eine Version von Vim zu installieren, die mit Ruby-Unterstützung kompiliert wird.

Was wäre der einfachste oder prägnanteste Weg für mich, dies in meinem config.nix zu erreichen?

Antwort

1

Und nach einigem Hacking laufen, hier ist die einfachste Lösung, die ich gefunden habe:

# ~/.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 
     ]; 
    }; 

    }; 
} 

Und installieren es mit nix-env -i myEnv.

0

Sie können versuchen, vim selbst zu kompilieren. Um diese Art und Weise zu erhalten Rubin unterstützt alles, was Sie tun müssen, ist fügen Sie die --rubyinterp Flags, wenn Sie ./configure

+0

Ja, das stimmt, aber ich möchte nur einen Weg, es mit Nix zu machen, also ist es deklarativ und ich muss es nie manuell machen! – jhrr