首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对vim插件的自定义Nix派生失败

针对vim插件的自定义Nix派生失败
EN

Stack Overflow用户
提问于 2021-01-17 17:56:37
回答 1查看 1K关注 0票数 1

编辑:将这些保留下来,作为其他搜索类似问题的历史,其中一些问题已经解决,但最后的问题仍未解决,请参阅====行之后。

我正在使用家庭经理,我设置它为我提供新的,包括一些插件。不幸的是coc插件不再是最新的,所以现在我想从github打包它,然后导入。我是新来的,所以我仍然想念很多东西,我相信。

到目前为止,我的天真方法是:.../neovim/default.nix

代码语言:javascript
复制
with import <nixpkgs> {};

let coc = callPackage ./coc-new.nix;
in
{
  enable = true;
  viAlias = true;
  vimAlias = true;
  withNodeJs = false;
  plugins = with pkgs.vimPlugins; [
    coc
    fzf-vim
    fzfWrapper
    haskell-vim
    some-more-plugins
  ];
  extraConfig = ''
    unlet! skip_defaults_vim
    " some more vimrc stuff
  '';
}

然后是.../neovim/coc-new.nix

代码语言:javascript
复制
{ stdenv, fetchFromGithub, lib, config, options }:

stdenv.mkDerivation rec {
 name = "new-coc-${version}";
  version = "v0.80";

  src = fetchFromGithub {
    owner = "neoclide";
    repo = "coc.nvim";
    rev = "ce448a6945d90609bc5c063577e12b859de0834b";
#    sha256 = " ???";
  };

  installPhase = ''
    export PATH="''\${bash}/bin/bash"
    mkdir -p $out
    cp -r ./ $out
  '';
}

错误告诉我,导入的任何内容都不是某种“包”类型:

代码语言:javascript
复制
error: The option `programs.neovim.plugins.[definition 1-entry 1].__ignoreNulls' defined in `/home/chai/.config/nixpkgs/role/laptop-old/index.nix' does not exist.

所以请帮帮我:

  1. --我是否正确--它现在正在定义一个包,但实际上并没有构建它?

  1. ,rev的值:.我将其设置为github上coc repo中找到的提交哈希,对吗?
  2. 的sha值。我从哪弄到的?

谢谢你帮助一个新用户来这里的路上!

==========================================================================

编辑:在注释和一些关于man nix-has的阅读的帮助下,我设法让哈希和构建工作起来。我按照建议在...neovim/default.nix中添加了{}参数

代码语言:javascript
复制
let coc = callPackage ./coc-new.nix {};

.../neovim/coc-new.nix现在读到:

代码语言:javascript
复制
{ stdenv, fetchFromGitHub }:

stdenv.mkDerivation rec {
  pname = "coc-nvim";
  version = "v0.80";

  src = fetchFromGitHub {
    owner = "neoclide";
    repo = "coc.nvim";
    rev = "v0.0.80";
    sha256 = "1c2spdx4jvv7j52f37lxk64m3rx7003whjnra3y1c7m2d7ljs6rb";
  };
  dontBuild = true;
  installPhase = ''
    mkdir -p $out
    cp -r ./ $out
  '';

}

一切都在继续但是..。新创建的派生不会被提取。我的vim包目录里什么都没有。为什么?我在(home-manager/neovim.nix)https://github.com/nix-community/home-manager/blob/master/modules/programs/neovim.nix上看到:

代码语言:javascript
复制
      plugins = mkOption {
        type = with types; listOf (either package pluginWithConfigType);
        default = [ ];
        example = literalExample ''
          with pkgs.vimPlugins; [
            yankring
            vim-nix
            { plugin = vim-startify;
              config = "let g:startify_change_to_vcs_root = 0";
            }
          ]
        '';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-18 16:40:50

好吧,我终于成功了。经过更多的搜索和迷路,结果发现pkgs.vimUtils.buildVimPlugin已经解决了我的问题。我的档案现在写着:

代码语言:javascript
复制
{ pkgs, fetchFromGitHub }:

pkgs.vimUtils.buildVimPlugin {
  pname = "coc-nvim";
  version = "v0.80";

  src = fetchFromGitHub {
    owner = "neoclide";
    repo = "coc.nvim";
    rev = "v0.0.80";
    sha256 = "1c2spdx4jvv7j52f37lxk64m3rx7003whjnra3y1c7m2d7ljs6rb";
  };
}

还有..。

代码语言:javascript
复制
with import <nixpkgs> {};
let coc = callPackage ./coc-plugin.nix { };
in
{
  enable = true;
  viAlias = true;
  vimAlias = true;
  withNodeJs = false;
  plugins =  with pkgs.vimPlugins;[
    coc
    fzf-vim
    more-plugins
  ];
  extraConfig = ''
    unlet! skip_defaults_vim
    " ... more config
  '';
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65764080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档