Avoids confusion: `vim-full`'s build-time features are configurable, but both `vim` and `vim-full` are *customizable* (in the sense of user configuration).
···10- Vim packages (*recommended*)
11- vim-plug (vim only)
1200000000013## Custom configuration {#custom-configuration}
1415Adding custom .vimrc lines can be done using the following code:
1617```nix
18-vim_configurable.customize {
19 # `name` optionally specifies the name of the executable and package
20 name = "vim-with-plugins";
21···62To store your plugins in Vim packages (the native Vim plugin manager, see `:help packages`) the following example can be used:
6364```nix
65-vim_configurable.customize {
66 vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
67 # loaded on launch
68 start = [ youcompleteme fugitive ];
···101```nix
102{
103 packageOverrides = pkgs: with pkgs; {
104- myVim = vim_configurable.customize {
105 # `name` specifies the name of the executable and package
106 name = "vim-with-plugins";
107 # add here code from the example section
···190plugins the following example can be used:
191192```nix
193-vim_configurable.customize {
194 vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
195 # loaded on launch
196 plug.plugins = [ youcompleteme fugitive phpCompletion elm-vim ];
···10- Vim packages (*recommended*)
11- vim-plug (vim only)
1213+Right now two Vim packages are available: `vim` which has most features that require extra
14+dependencies disabled and `vim-full` which has them configurable and enabled by default.
15+16+::: {.note}
17+`vim_configurable` is a deprecated alias for `vim-full` and refers to the fact that its
18+build-time features are configurable. It has nothing to do with user configuration,
19+and both the `vim` and `vim-full` packages can be customized as explained in the next section.
20+:::
21+22## Custom configuration {#custom-configuration}
2324Adding custom .vimrc lines can be done using the following code:
2526```nix
27+vim-full.customize {
28 # `name` optionally specifies the name of the executable and package
29 name = "vim-with-plugins";
30···71To store your plugins in Vim packages (the native Vim plugin manager, see `:help packages`) the following example can be used:
7273```nix
74+vim-full.customize {
75 vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
76 # loaded on launch
77 start = [ youcompleteme fugitive ];
···110```nix
111{
112 packageOverrides = pkgs: with pkgs; {
113+ myVim = vim-full.customize {
114 # `name` specifies the name of the executable and package
115 name = "vim-with-plugins";
116 # add here code from the example section
···199plugins the following example can be used:
200201```nix
202+vim-full.customize {
203 vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
204 # loaded on launch
205 plug.plugins = [ youcompleteme fugitive phpCompletion elm-vim ];
···160 <itemizedlist>
161 <listitem>
162 <para>
00000000000163 The module for the application firewall
164 <literal>opensnitch</literal> got the ability to configure
165 rules. Available as
···160 <itemizedlist>
161 <listitem>
162 <para>
163+ <literal>vim_configurable</literal> has been renamed to
164+ <literal>vim-full</literal> to avoid confusion:
165+ <literal>vim-full</literal>’s build-time features are
166+ configurable, but both <literal>vim</literal> and
167+ <literal>vim-full</literal> are
168+ <emphasis>customizable</emphasis> (in the sense of user
169+ configuration, like vimrc).
170+ </para>
171+ </listitem>
172+ <listitem>
173+ <para>
174 The module for the application firewall
175 <literal>opensnitch</literal> got the ability to configure
176 rules. Available as
+2
nixos/doc/manual/release-notes/rl-2305.section.md
···4950<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
510052- The module for the application firewall `opensnitch` got the ability to configure rules. Available as [services.opensnitch.rules](#opt-services.opensnitch.rules)
5354- `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables.
···4950<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
5152+- `vim_configurable` has been renamed to `vim-full` to avoid confusion: `vim-full`'s build-time features are configurable, but both `vim` and `vim-full` are *customizable* (in the sense of user configuration, like vimrc).
53+54- The module for the application firewall `opensnitch` got the ability to configure rules. Available as [services.opensnitch.rules](#opt-services.opensnitch.rules)
5556- `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables.
···1# run tests by building `neovim.tests`
2-{ vimUtils, vim_configurable, writeText, neovim, vimPlugins
3, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
4, neovim-unwrapped
5, fetchFromGitLab
···1# run tests by building `neovim.tests`
2+{ vimUtils, writeText, neovim, vimPlugins
3, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
4, neovim-unwrapped
5, fetchFromGitLab
+2-2
pkgs/applications/editors/spacevim/default.nix
···2, git
3, fzf
4, makeWrapper
5-, vim_configurable
6, vimPlugins
7, fetchFromGitHub
8, lib
···1415let
16 format = formats.toml { };
17- vim-customized = vim_configurable.customize {
18 name = "vim";
19 # Not clear at the moment how to import plugins such that
20 # SpaceVim finds them and does not auto download them to
···2, git
3, fzf
4, makeWrapper
5+, vim-full
6, vimPlugins
7, fetchFromGitHub
8, lib
···1415let
16 format = formats.toml { };
17+ vim-customized = vim-full.customize {
18 name = "vim";
19 # Not clear at the moment how to import plugins such that
20 # SpaceVim finds them and does not auto download them to
···6 makeCustomizable = macvim: macvim // {
7 # configure expects the same args as vimUtils.vimrcFile.
8 # This is the same as the value given to neovim.override { configure = … }
9- # or the value of vim_configurable.customize { vimrcConfig = … }
10 #
11- # Note: Like neovim and vim_configurable, configuring macvim disables the
12 # sourcing of the user's vimrc. Use `customRC = "source $HOME/.vim/vimrc"`
13 # if you want to preserve that behavior.
14 configure = let
···6 makeCustomizable = macvim: macvim // {
7 # configure expects the same args as vimUtils.vimrcFile.
8 # This is the same as the value given to neovim.override { configure = … }
9+ # or the value of vim-full.customize { vimrcConfig = … }
10 #
11+ # Note: Like neovim and vim-full, configuring macvim disables the
12 # sourcing of the user's vimrc. Use `customRC = "source $HOME/.vim/vimrc"`
13 # if you want to preserve that behavior.
14 configure = let
···14Install Vim like this eg using nixos option environment.systemPackages which will provide
15vim-with-plugins in PATH:
1617- vim_configurable.customize {
18 name = "vim-with-plugins"; # optional
1920 # add custom .vimrc lines like this:
···105Thus the most simple usage would be:
106107 vim_with_plugins =
108- let vim = vim_configurable;
109 inherit (vimUtil.override {inherit vim}) rtpPath addRtp buildVimPlugin vimHelpTags;
110 vimPlugins = [
111 # the derivation list from the buffer created by nix#ExportPluginsForNix
···14Install Vim like this eg using nixos option environment.systemPackages which will provide
15vim-with-plugins in PATH:
1617+ vim-full.customize {
18 name = "vim-with-plugins"; # optional
1920 # add custom .vimrc lines like this:
···105Thus the most simple usage would be:
106107 vim_with_plugins =
108+ let vim = vim-full;
109 inherit (vimUtil.override {inherit vim}) rtpPath addRtp buildVimPlugin vimHelpTags;
110 vimPlugins = [
111 # the derivation list from the buffer created by nix#ExportPluginsForNix
···1559 vdirsyncerStable = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
1560 venus = throw "venus has been removed from nixpkgs, as it's unmaintained"; # Added 2021-02-05
1561 vgo2nix = throw "vgo2nix has been removed, because it was deprecated. Consider using gomod2nix instead"; # added 2022-08-24
001562 vimbWrapper = throw "'vimbWrapper' has been renamed to/replaced by 'vimb'"; # Converted to throw 2022-02-22
1563 virtinst = throw "virtinst has been removed, as it's included in virt-manager"; # Added 2021-07-21
1564 virtuoso = throw "virtuoso has been removed, because it was unmaintained in nixpkgs"; # added 2021-12-15
···1559 vdirsyncerStable = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
1560 venus = throw "venus has been removed from nixpkgs, as it's unmaintained"; # Added 2021-02-05
1561 vgo2nix = throw "vgo2nix has been removed, because it was deprecated. Consider using gomod2nix instead"; # added 2022-08-24
1562+ vimHugeX = vim-full; # Added 2022-12-04
1563+ vim_configurable = vim-full; # Added 2022-12-04
1564 vimbWrapper = throw "'vimbWrapper' has been renamed to/replaced by 'vimb'"; # Converted to throw 2022-02-22
1565 virtinst = throw "virtinst has been removed, as it's included in virt-manager"; # Added 2021-07-21
1566 virtuoso = throw "virtuoso has been removed, because it was unmaintained in nixpkgs"; # added 2021-12-15