<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Vim%2Fen</id>
	<title>Vim/en - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Vim%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;action=history"/>
	<updated>2026-04-07T10:32:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.0</generator>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=28504&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=28504&amp;oldid=prev"/>
		<updated>2025-11-20T14:22:35Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:22, 20 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l151&quot;&gt;Line 151:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 151:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vim plugins can be installed with the help of nix. You can omit using vim plugin managers and do everything in your &amp;lt;code&amp;gt;.nixpkgs/config&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vim plugins can be installed with the help of nix. You can omit using vim plugin managers and do everything in your &amp;lt;code&amp;gt;.nixpkgs/config&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A lot of documentation about package management and configuration of vim in nix is stored at [https://github.com/NixOS/nixpkgs/blob/master/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pkgs&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;applications/editors&lt;/del&gt;/vim&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/plugins/vim-utils&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nix&lt;/del&gt;] in nixpkgs.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A lot of documentation about package management and configuration of vim in nix is stored at [https://github.com/NixOS/nixpkgs/blob/master/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doc&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;languages-frameworks&lt;/ins&gt;/vim.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;section.md&lt;/ins&gt;] in nixpkgs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Customizations ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Customizations ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-26890:rev-28504:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=26890&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=26890&amp;oldid=prev"/>
		<updated>2025-10-07T20:14:49Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;a href=&quot;https://wiki.nixos.org/w/index.php?title=Vim/en&amp;amp;diff=26890&amp;amp;oldid=15820&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=15820&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=15820&amp;oldid=prev"/>
		<updated>2024-07-30T12:02:57Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:02, 30 July 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l275&quot;&gt;Line 275:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 275:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As per the instructions found in https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/vim.section.md&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As per the instructions found in https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/vim.section.md&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Commit the changes with the commit message &amp;quot;vimPlugins: Update&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Commit the changes with the commit message &amp;quot;vimPlugins: Update&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Add your plugin to ./vim-plugin-names (please try to maintain the list alphabetically sorted). You can customize the branch by appending for example &amp;lt;code&amp;gt;@main&amp;lt;/code&amp;gt; to an entry (search the file for examples)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Add your plugin to ./vim-plugin-names (please try to maintain the list alphabetically sorted). You can customize the branch by appending for example &amp;lt;code&amp;gt;@main&amp;lt;/code&amp;gt; to an entry (search the file for examples)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt; once again to generate the plugin&amp;#039;s nix expression.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt; once again to generate the plugin&amp;#039;s nix expression.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Commit your changes one more time, this time with the message formated as such: &amp;quot;vimPlugins.[plugin-name]: init at [version]&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Commit your changes one more time, this time with the message formated as such: &amp;quot;vimPlugins.[plugin-name]: init at [version]&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* If you need to add additional code/patches to the generated code, add those lines to &amp;lt;code&amp;gt;pkgs/misc/vim-plugins/vim2nix/additional-nix-code&amp;lt;/code&amp;gt; and rerun &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;. They will be included in the generated code.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* If you need to add additional code/patches to the generated code, add those lines to &amp;lt;code&amp;gt;pkgs/misc/vim-plugins/vim2nix/additional-nix-code&amp;lt;/code&amp;gt; and rerun &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;. They will be included in the generated code.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l406&quot;&gt;Line 406:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 412:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/jagajaga/my_configs/blob/master/.nixpkgs/common.nix Jagajaga’s config]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/jagajaga/my_configs/blob/master/.nixpkgs/common.nix Jagajaga’s config]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/andrewrk/dotfiles/blob/master/.nixpkgs/config.nix andrewrk&amp;#039;s config]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/andrewrk/dotfiles/blob/master/.nixpkgs/config.nix andrewrk&amp;#039;s config]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/wagnerf42/nixos-config/blob/master/config/my_vim.nix wagnerf42&amp;#039;s config (good for rust language)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/wagnerf42/nixos-config/blob/master/config/my_vim.nix wagnerf42&amp;#039;s config (good for rust language)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l440&quot;&gt;Line 440:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 448:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   wrapGui = true;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   wrapGui = true;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Applications]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Applications]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Text Editor{{#translation:}}]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Text Editor{{#translation:}}]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-15767:rev-15820:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=15767&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=15767&amp;oldid=prev"/>
		<updated>2024-07-30T09:46:03Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;a href=&quot;https://wiki.nixos.org/w/index.php?title=Vim/en&amp;amp;diff=15767&amp;amp;oldid=14971&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=14971&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Vim/en&amp;diff=14971&amp;oldid=prev"/>
		<updated>2024-07-21T02:41:16Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
[https://www.vim.org/ Vim] (vi improved) is a highly configurable modal text editor program for the terminal.   &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Basic Install ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;gt;&lt;br /&gt;
  environment.systemPackages = with pkgs; [ vim ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;gt;&lt;br /&gt;
  environment.systemPackages = with pkgs; [ vim_configurable ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Home Manager ===&lt;br /&gt;
&lt;br /&gt;
Vim can easily be set up using [[Special:MyLanguage/Home Manager|Home Manager]]. Here&amp;#039;s a minimal example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;gt;&lt;br /&gt;
  programs.vim = {&lt;br /&gt;
    enable = true;&lt;br /&gt;
    plugins = with pkgs.vimPlugins; [ vim-airline ];&lt;br /&gt;
    settings = { ignorecase = true; };&lt;br /&gt;
    extraConfig = &amp;#039;&amp;#039;&lt;br /&gt;
      set mouse=a&lt;br /&gt;
    &amp;#039;&amp;#039;;&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/rycee/home-manager/blob/master/modules/programs/vim.nix] for the full set of options.&lt;br /&gt;
&lt;br /&gt;
=== Vim Spell Files ===&lt;br /&gt;
&lt;br /&gt;
You can configure home-manager to install spelling files into your user directory by packaging individual spell files.  Here&amp;#039; an example for neovim and French:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
let&lt;br /&gt;
nvim-spell-fr-utf8-dictionary = builtins.fetchurl {&lt;br /&gt;
  url = &amp;quot;http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl&amp;quot;;&lt;br /&gt;
  sha256 = &amp;quot;abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
nvim-spell-fr-utf8-suggestions = builtins.fetchurl {&lt;br /&gt;
  url = &amp;quot;http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug&amp;quot;;&lt;br /&gt;
  sha256 = &amp;quot;0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
nvim-spell-fr-latin1-dictionary = builtins.fetchurl {&lt;br /&gt;
  url = &amp;quot;http://ftp.vim.org/vim/runtime/spell/fr.latin1.spl&amp;quot;;&lt;br /&gt;
  sha256 = &amp;quot;086ccda0891594c93eab143aa83ffbbd25d013c1b82866bbb48bb1cb788cc2ff&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
nvim-spell-fr-latin1-suggestions = builtins.fetchurl {&lt;br /&gt;
  url = &amp;quot;http://ftp.vim.org/vim/runtime/spell/fr.latin1.sug&amp;quot;;&lt;br /&gt;
  sha256 = &amp;quot;5cb2c97901b9ca81bf765532099c0329e2223c139baa764058822debd2e0d22a&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
in&lt;br /&gt;
{&lt;br /&gt;
  home.file.&amp;quot;${config.xdg.configHome}/nvim/spell/fr.utf-8.spl&amp;quot;.source = nvim-spell-fr-utf8-dictionary;&lt;br /&gt;
  home.file.&amp;quot;${config.xdg.configHome}/nvim/spell/fr.utf-8.sug&amp;quot;.source = nvim-spell-fr-utf8-suggestions;&lt;br /&gt;
  home.file.&amp;quot;${config.xdg.configHome}/nvim/spell/fr.latin1.spl&amp;quot;.source = nvim-spell-fr-latin1-dictionary;&lt;br /&gt;
  home.file.&amp;quot;${config.xdg.configHome}/nvim/spell/fr.latin1.sug&amp;quot;.source = nvim-spell-fr-latin1-suggestions;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NeoVim with Coc for Python ====&lt;br /&gt;
&lt;br /&gt;
For NeoVim use this home manager config:&lt;br /&gt;
https://github.com/NixOS/nixpkgs/issues/98166#issuecomment-725319238&lt;br /&gt;
&lt;br /&gt;
== System wide vim/nvim configuration ==&lt;br /&gt;
&lt;br /&gt;
If you want a system wide &amp;quot;baseline&amp;quot; configuration for vim/nvim here are two examples:.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{ pkgs, ... }:&lt;br /&gt;
{&lt;br /&gt;
  environment.variables = { EDITOR = &amp;quot;vim&amp;quot;; };&lt;br /&gt;
&lt;br /&gt;
  environment.systemPackages = with pkgs; [&lt;br /&gt;
    ((vim_configurable.override {  }).customize{&lt;br /&gt;
      name = &amp;quot;vim&amp;quot;;&lt;br /&gt;
      # Install plugins for example for syntax highlighting of nix files&lt;br /&gt;
      vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {&lt;br /&gt;
        start = [ vim-nix vim-lastplace ];&lt;br /&gt;
        opt = [];&lt;br /&gt;
      };&lt;br /&gt;
      vimrcConfig.customRC = &amp;#039;&amp;#039;&lt;br /&gt;
        &amp;quot; your custom vimrc&lt;br /&gt;
        set nocompatible&lt;br /&gt;
        set backspace=indent,eol,start&lt;br /&gt;
        &amp;quot; Turn on syntax highlighting by default&lt;br /&gt;
        syntax on&lt;br /&gt;
        &amp;quot; ...&lt;br /&gt;
      &amp;#039;&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
  )];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{ pkgs, ... }:&lt;br /&gt;
{&lt;br /&gt;
  environment.variables = { EDITOR = &amp;quot;vim&amp;quot;; };&lt;br /&gt;
&lt;br /&gt;
  environment.systemPackages = with pkgs; [&lt;br /&gt;
    (neovim.override {&lt;br /&gt;
      vimAlias = true;&lt;br /&gt;
      extraConfig = &amp;#039;&amp;#039;&lt;br /&gt;
        &amp;quot; your custom vimrc&lt;br /&gt;
        set nocompatible&lt;br /&gt;
        set backspace=indent,eol,start&lt;br /&gt;
        &amp;quot; ...&lt;br /&gt;
      &amp;#039;&amp;#039;;&lt;br /&gt;
      configure = {&lt;br /&gt;
        packages.myPlugins = with pkgs.vimPlugins; {&lt;br /&gt;
          start = [ vim-lastplace vim-nix ]; &lt;br /&gt;
          opt = [];&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
    }&lt;br /&gt;
  )];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import these in your &amp;lt;code&amp;gt;configuration.nix&amp;lt;/code&amp;gt; and&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{    &lt;br /&gt;
  imports =    &lt;br /&gt;
    [&lt;br /&gt;
      ./vim.nix&lt;br /&gt;
    ];&lt;br /&gt;
  # ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom setup without using Home Manager ==&lt;br /&gt;
&lt;br /&gt;
{{note|To get a general overview about how to set up your vim in nix, refer to [https://www.mpscholten.de/nixos/2016/04/11/setting-up-vim-on-nixos.html mpscholten&amp;#039;s blog] }}&lt;br /&gt;
&lt;br /&gt;
Vim plugins can be installed with the help of nix. You can omit using vim plugin managers and do everything in your &amp;lt;code&amp;gt;.nixpkgs/config&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A lot of documentation about package management and configuration of vim in nix is stored at [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-utils.nix] in nixpkgs.&lt;br /&gt;
&lt;br /&gt;
=== Customizations ===&lt;br /&gt;
&lt;br /&gt;
Both vim and neovim can be further configured to include your favorite plugins and additional libraries. To list all available vim plugins, run &amp;lt;code&amp;gt;nix search nixpkgs#vimPlugins&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Add the following code to your &amp;lt;code&amp;gt;~/.nixpkgs/config.nix&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  packageOverrides = pkgs: with pkgs; {&lt;br /&gt;
    myVim = vim_configurable.customize {&lt;br /&gt;
      name = &amp;quot;vim-with-plugins&amp;quot;;&lt;br /&gt;
      # add here code from the example section&lt;br /&gt;
    };&lt;br /&gt;
    myNeovim = neovim.override {&lt;br /&gt;
      configure = {&lt;br /&gt;
        customRC = &amp;#039;&amp;#039;&lt;br /&gt;
          # here your custom configuration goes!&lt;br /&gt;
        &amp;#039;&amp;#039;;&lt;br /&gt;
        packages.myVimPackage = with pkgs.vimPlugins; {&lt;br /&gt;
          # see examples below how to use custom packages&lt;br /&gt;
          start = [ ];&lt;br /&gt;
          opt = [ ];&lt;br /&gt;
        }; &lt;br /&gt;
      };     &lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that you can install your special grafted `myVim` or `myNeovim` packages.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Apply custom vimrc configuration ====&lt;br /&gt;
&lt;br /&gt;
NB: you &amp;#039;&amp;#039;must&amp;#039;&amp;#039; use &amp;lt;code&amp;gt;vimrcConfig.customRC&amp;lt;/code&amp;gt; rather than installing a &amp;lt;code&amp;gt;~/.vimrc&amp;lt;/code&amp;gt; by hand, since the customized Vim will silently ignore any vimrc in your home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
vim_configurable.customize {&lt;br /&gt;
  name = &amp;quot;vim-with-plugins&amp;quot;;&lt;br /&gt;
  # add custom .vimrc lines like this:&lt;br /&gt;
  vimrcConfig.customRC = &amp;#039;&amp;#039;&lt;br /&gt;
    set hidden&lt;br /&gt;
    set colorcolumn=80 &lt;br /&gt;
  &amp;#039;&amp;#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to run code before plugins are added, you can use &amp;lt;code&amp;gt;vimrcConfig.beforePlugins&amp;lt;/code&amp;gt; (be sure to include &amp;lt;code&amp;gt;set nocompatible&amp;lt;/code&amp;gt; if you override [https://github.com/NixOS/nixpkgs/blob/c3df8057dad986bf7f3928de1b5233fadb52bb15/pkgs/misc/vim-plugins/vim-utils.nix#L264-L267 the default value]).&lt;br /&gt;
&lt;br /&gt;
=== Using vim&amp;#039;s builtin packaging capability ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
vim_configurable.customize {&lt;br /&gt;
  vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {&lt;br /&gt;
    # loaded on launch&lt;br /&gt;
    start = [ YouCompleteMe fugitive ];&lt;br /&gt;
    # manually loadable by calling `:packadd $plugin-name`&lt;br /&gt;
    opt = [ phpCompletion elm-vim ];&lt;br /&gt;
    # To automatically load a plugin when opening a filetype, add vimrc lines like:&lt;br /&gt;
    # autocmd FileType php :packadd phpCompletion&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that dynamically loading with opt may be buggy and the workaround is to use [https://vi.stackexchange.com/a/20818/30821 start instead].&lt;br /&gt;
&lt;br /&gt;
=== Using Pathogen as manager ===&lt;br /&gt;
&lt;br /&gt;
There is a pathogen implementation as well, but its startup is slower and [VAM] has more features. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
vimrcConfig.pathogen.knownPlugins = vimPlugins; # optional&lt;br /&gt;
vimrcConfig.pathogen.pluginNames = [ &amp;quot;vim-addon-nix&amp;quot; &amp;quot;youcompleteme&amp;quot; ];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Vim-Plug as manager ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
vimrcConfig.plug.plugins = with pkgs.vimPlugins; [vim-addon-nix youcompleteme];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Adding new plugins ===&lt;br /&gt;
&lt;br /&gt;
As per the instructions found in https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/vim.section.md&lt;br /&gt;
* First run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Commit the changes with the commit message &amp;quot;vimPlugins: Update&amp;quot;.&lt;br /&gt;
* Add your plugin to ./vim-plugin-names (please try to maintain the list alphabetically sorted). You can customize the branch by appending for example &amp;lt;code&amp;gt;@main&amp;lt;/code&amp;gt; to an entry (search the file for examples)&lt;br /&gt;
* Run &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt; once again to generate the plugin&amp;#039;s nix expression.&lt;br /&gt;
* Commit your changes one more time, this time with the message formated as such: &amp;quot;vimPlugins.[plugin-name]: init at [version]&amp;quot;.&lt;br /&gt;
* If you need to add additional code/patches to the generated code, add those lines to &amp;lt;code&amp;gt;pkgs/misc/vim-plugins/vim2nix/additional-nix-code&amp;lt;/code&amp;gt; and rerun &amp;lt;code&amp;gt;./update.py&amp;lt;/code&amp;gt;. They will be included in the generated code.&lt;br /&gt;
&lt;br /&gt;
==== Notes Regarding Plugins ====&lt;br /&gt;
&lt;br /&gt;
For additional info, you may wish to look at [https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/vim.section.md documentation on the nixpkgs repository].&lt;br /&gt;
&lt;br /&gt;
=== Add a new custom plugin to the users packages  ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you do not want to change upstream plugins, for this you can use  &amp;lt;code&amp;gt;vimUtils.buildVimPlugin&amp;lt;/code&amp;gt; to create your own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
let&lt;br /&gt;
  vim-better-whitespace = pkgs.vimUtils.buildVimPlugin {&lt;br /&gt;
    name = &amp;quot;vim-better-whitespace&amp;quot;;&lt;br /&gt;
    src = pkgs.fetchFromGitHub {&lt;br /&gt;
      owner = &amp;quot;ntpeters&amp;quot;;&lt;br /&gt;
      repo = &amp;quot;vim-better-whitespace&amp;quot;;&lt;br /&gt;
      rev = &amp;quot;984c8da518799a6bfb8214e1acdcfd10f5f1eed7&amp;quot;;&lt;br /&gt;
      sha256 = &amp;quot;10l01a8xaivz6n01x6hzfx7gd0igd0wcf9ril0sllqzbq7yx2bbk&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
in {&lt;br /&gt;
  users.users.&amp;lt;yourNickname&amp;gt;.packages = [&lt;br /&gt;
    (pkgs.vim_configurable.customize {&lt;br /&gt;
      vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {&lt;br /&gt;
        start = [ vim-better-whitespace ];&lt;br /&gt;
      };&lt;br /&gt;
    })&lt;br /&gt;
  ];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Using flake ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;configuration.nix&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{ inputs, ... }:&lt;br /&gt;
{&lt;br /&gt;
  nixpkgs = {&lt;br /&gt;
    overlays = [&lt;br /&gt;
      (self: super:&lt;br /&gt;
        let&lt;br /&gt;
          winresizer-vim = super.vimUtils.buildVimPlugin {&lt;br /&gt;
            name = &amp;quot;winresizer-vim&amp;quot;;&lt;br /&gt;
            src = inputs.winresizer-vim;&lt;br /&gt;
          };&lt;br /&gt;
        in&lt;br /&gt;
        {&lt;br /&gt;
          vimPlugins =&lt;br /&gt;
            super.vimPlugins // {&lt;br /&gt;
              inherit winresizer-vim;&lt;br /&gt;
            };&lt;br /&gt;
        }&lt;br /&gt;
      )&lt;br /&gt;
    ];&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flake.nix&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  inputs = {&lt;br /&gt;
    nixpkgs.url = &amp;quot;github:nixos/nixpkgs/nixos-22.05&amp;quot;;&lt;br /&gt;
    winresizer-vim = {&lt;br /&gt;
      url = &amp;quot;github:simeji/winresizer&amp;quot;;&lt;br /&gt;
      flake = false;&lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  outputs = inputs@{ nixpkgs, ... }: {&lt;br /&gt;
    nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {&lt;br /&gt;
      system = &amp;quot;x86_64-linux&amp;quot;;&lt;br /&gt;
      specialArgs = { inherit inputs; };&lt;br /&gt;
      modules = [&lt;br /&gt;
        ./configuration.nix&lt;br /&gt;
        ./hardware-configuration.nix&lt;br /&gt;
        { nix.registry.nixpkgs.flake = nixpkgs; }&lt;br /&gt;
      ];&lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then we can update the package with &amp;lt;code&amp;gt;nix flake lock --update-input winresizer-vim&amp;lt;/code&amp;gt;, or update all inputs in flake.nix with &amp;lt;code&amp;gt;nix flake update&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Vim as a Python IDE ===&lt;br /&gt;
&lt;br /&gt;
The following snippet will make a full featured python IDE.&lt;br /&gt;
&lt;br /&gt;
==== Using language client ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxHighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
vim_configurable.customize {&lt;br /&gt;
  vimrcConfig = {&lt;br /&gt;
    customRC = &amp;#039;&amp;#039;&lt;br /&gt;
      let g:LanguageClient_serverCommands = {&lt;br /&gt;
        \ &amp;#039;python&amp;#039;: [&amp;#039;pyls&amp;#039;]&lt;br /&gt;
        \ }&lt;br /&gt;
       nnoremap &amp;lt;F5&amp;gt; :call LanguageClient_contextMenu()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; gh :call LanguageClient_textDocument_hover()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; gd :call LanguageClient_textDocument_definition()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; gr :call LanguageClient_textDocument_references()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; gs :call LanguageClient_textDocument_documentSymbol()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; &amp;lt;F2&amp;gt; :call LanguageClient_textDocument_rename()&amp;lt;CR&amp;gt;&lt;br /&gt;
       nnoremap &amp;lt;silent&amp;gt; gf :call LanguageClient_textDocument_formatting()&amp;lt;CR&amp;gt;&lt;br /&gt;
    &amp;#039;&amp;#039;;&lt;br /&gt;
    packages.myVimPackage = with pkgs.vimPlugins; {&lt;br /&gt;
      start = [ LanguageClient-neovim ];&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then put the following expression in &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; or in the home-manager package list,&lt;br /&gt;
to install python-language-server:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxHighlight  lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
(python3.withPackages(ps: [&lt;br /&gt;
  ps.python-language-server&lt;br /&gt;
  # the following plugins are optional, they provide type checking, import sorting and code formatting&lt;br /&gt;
  ps.pyls-mypy ps.pyls-isort ps.pyls-black&lt;br /&gt;
]))&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Real life examples ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/jagajaga/my_configs/blob/master/.nixpkgs/common.nix Jagajaga’s config]&lt;br /&gt;
* [https://github.com/andrewrk/dotfiles/blob/master/.nixpkgs/config.nix andrewrk&amp;#039;s config]&lt;br /&gt;
* [https://github.com/wagnerf42/nixos-config/blob/master/config/my_vim.nix wagnerf42&amp;#039;s config (good for rust language)]&lt;br /&gt;
&lt;br /&gt;
=== YouCompleteMe ===&lt;br /&gt;
&lt;br /&gt;
Currently the youcompleteme plugin uses [https://github.com/NixOS/nixpkgs/blob/8e7b1f2ac2e261d5a644fef860a0d050ea227c06/pkgs/misc/vim-plugins/default.nix#L695 unwrapped clang on linux]. This causes it to not find &amp;lt;code&amp;gt;stdlib.h&amp;lt;/code&amp;gt;. There is a [https://github.com/andrewrk/genesis/blob/5f49cd9a8c2b61b9859a22102bc3f732add9461a/.ycm_extra_conf.py workaround] you can put in your &amp;lt;code&amp;gt;.ycm_extra_conf.py&amp;lt;/code&amp;gt; file, which works by executing the C/C++ compiler and getting it to output the list of search paths - which includes the search path to find &amp;lt;code&amp;gt;stdlib.h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A better alternative to youcompleteme for C/C++ is to use [https://github.com/cquery-project/cquery/ cquery] in combination with the [https://github.com/autozimu/LanguageClient-neovim LanguageClient-neovim]. It will also find in c header files when used in a nix-shell if you install cquery from nixpkgs as it uses a custom [https://github.com/NixOS/nixpkgs/commit/04f3b76dcec21f2fcba6b1b0afbb3ed224165050#diff-11cdfc0385b9e017089c1ac09c5b838e shell wrapper]&lt;br /&gt;
&lt;br /&gt;
== Python 3 support for vim ==&lt;br /&gt;
&lt;br /&gt;
If you have defined your vim configuration in a `./my_vim.nix` file you can install vim with the python 3 support instead of python2 by overriding the python version like the following:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxHighlight  lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
(pkgs.callPackage ./my_vim.nix {                                                                                                                                                          &lt;br /&gt;
      vim_configurable = vim_configurable.override { python = python3; };                                                                                                                     &lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxHighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== gvim and gview ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gvim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;gview&amp;lt;/code&amp;gt; may be installed using the &amp;lt;code&amp;gt;[https://search.nixos.org/packages/?query=vimHugeX vimHugeX]&amp;lt;/code&amp;gt; attribute name (package name &amp;lt;code&amp;gt;[https://search.nixos.org/packages/?query=vim_configurable vim_configurable]&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
$ nix-env -iA nixos.vimHugeX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using &amp;lt;code&amp;gt;vim_configurable.customize&amp;lt;/code&amp;gt;, you can enable &amp;lt;code&amp;gt;wrapGui&amp;lt;/code&amp;gt; to make &amp;lt;code&amp;gt;gvim&amp;lt;/code&amp;gt; available, though this won&amp;#039;t give you &amp;lt;code&amp;gt;gview&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=nix&amp;gt;&lt;br /&gt;
vim_configured = pkgs.vim_configurable.customize {&lt;br /&gt;
  name = &amp;quot;vim&amp;quot;;&lt;br /&gt;
  wrapGui = true;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Text Editor{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>