История изменений
Исправление allter149, (текущая версия) :
В общем, поразбирался. Оказывается, готовый фреймворк для упрощения того, что я хотел, есть, но он есть только для neovim, а не для vim_configurable :( Кроме того, я не смог собрать vim_configurable с поддержкой perl, что не удивительно, ибо он по умолчанию выключен, а значит на дефолтной сборке ошибка не отловится. Но неприятно. Надо будет попробовать с более старой версией perl (только надо будет разобраться, как это сделать).
Итак, просто кладём файл со следующим содержимым в .config/nixpkgs/overlays/my_overlay_name.nix :
self: super:
{
neovim = super.neovim.override {
configure = {
plug.plugins = with super.vimPlugins; [
coc-nvim # нужные модули
];
};
};
}
Для neovim все манипуляции с зависимостями происходят в nix-файлах в nixpkgs/pkgs/applications/editors/neovim/ и в nixpkgs/pkgs/misc/vim-plugins/ . Соответственно, для vim придётся это всё реализовывать вручную.
Сейчас бы ещё понять, как сделать следующее: coc-nvim требует бинарь node (nodejs). Хочу, что бы из nvim (neovim) этот бинарь всегда был доступен из стора. Сейчас пришлось сделать nix-env -i neovim nodejs, т.е. node берётся из окружения. А хочется, что бы вне зависимости, какой node в моём окружении, в nvim всегда был бы доступен node, описанный в .nix.
Правильно ли я понимаю, что мне для этого нужно описать пакет, который будет зависеть от nodejs и neovim и который будет формировать шелл-санк, просто добавляющий ${nodejs}/bin в PATH и вызывающий ${neovim}/bin/nvim ? Сходу не нашёл билдеров(?) для таких штук, наверняка есть такие?
Исходная версия allter149, :
В общем, поразбирался. Оказывается, готовый фреймворк для упрощения того, что я хотел, есть, но он есть только для neovim, а не для vim_configurable :( Кроме того, я не смог собрать vim_configurable с поддержкой perl, что не удивительно, ибо он по умолчанию выключен, а значит на дефолтной сборке ошибка не отловится. Но неприятно. Надо будет попробовать с более старой версией perl (только надо будет разобраться, как это сделать).
Итак, просто кладём файл со следующим содержимым в .config/nixpkgs/overlays/my_overlay_name.nix :
self: super:
{
neovim = super.neovim.override {
configure = {
plug.plugins = with super.vimPlugins; [
coc-nvim # нужные модули
];
};
};
}
Для neovim все манипуляции с зависимостями происходят в nix-файлах в nixpkgs/pkgs/applications/editors/neovim/ и в nixpkgs/pkgs/misc/vim-plugins/ . Соответственно, для vim придётся это всё реализовывать вручную.
Сейчас бы ещё понять, как сделать следующее: coc-nvim требует бинарь node (nodejs). Хочу, что бы из nvim (neovim) этот бинарь всегда был доступен из стора. Сейчас пришлось сделать nix-env -i neovim nodejs, т.е. node берётся из окружения. А хочется, что бы вне зависимости, какой node в моём окружении, в nvim всегда был бы доступен node, описанный в .nix.
Правильно ли я понимаю, что мне для этого нужно описать пакет, который будет зависеть от nodejs и neovim и который будет формировать шелл-санк, просто добавляющий ${nodejs}/bin/node в PATH и вызывающий ${neovim}/bin/nvim ? Сходу не нашёл билдеров(?) для таких штук, наверняка есть такие?