2017-04-04 3 views
1

私は、カスタムVimをNixで設定するためのテンプレートthisをフォローしています。次のように私のvim-config/default.nixは次のとおりです。vim_configurable.customizeでpython3でPythonを上書きする

{ 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を示して)使用されていません。私は何か不足していますか?

答えて

1

ステートメントの後のスコープ内のは、pythonを変更するだけです。 vim_configurableで使用されるpythonは影響を受けません。私がやってしまったことはvimUtils.makeCustomizableを使用してvim_configurableののpython3バージョンを作っている:

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" 
        # ... 
      ]; } 
    ]; 
  }; 
} 
+0

おかげで、非常に便利。 configurable_nix_pathの二重引用符を削除すると、より効率的(かつ警告なし)の評価につながります。 https://groups.google.com/forum/#!topic/nix-devel/mPyaxyRShFE –

+0

ありがとう@KlaasvanSchelven、私は警告は表示されませんでしたが、より効率的な解決策であるように見えます。私はこの変更を反映するために答えを更新しました。 – Ben

関連する問題