docs/Nixpkgs/Languages-And-Frameworks/vim.section/index.html

3094 lines
69 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Aux Documentation">
<meta name="author" content="Nixpkgs Aux, and Lix Contributors">
<link rel="canonical" href="https://docs.auxolotl.org/Nixpkgs/Languages-And-Frameworks/vim.section/">
<link rel="prev" href="../titanium.section/">
<link rel="next" href="../../Library-Reference/asserts/">
<link rel="icon" href="../../../assets/aux-logo.svg">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
<title>Vim - Aux Docs</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.76a95c52.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.bunny.net/css?family=IBM+Plex+Sans:300,300i,400,400i,700,700i%7CIBM+Plex+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"IBM Plex Sans";--md-code-font:"IBM Plex Mono"}</style>
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<meta property="og:type" content="website" >
<meta property="og:title" content="Vim {#vim} - Aux Docs" >
<meta property="og:description" content="Aux Documentation" >
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Languages-And-Frameworks/vim.section.png" >
<meta property="og:image:type" content="image/png" >
<meta property="og:image:width" content="1200" >
<meta property="og:image:height" content="630" >
<meta property="og:url" content="https://docs.auxolotl.org/Nixpkgs/Languages-And-Frameworks/vim.section/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="Vim {#vim} - Aux Docs" >
<meta name="twitter:description" content="Aux Documentation" >
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Languages-And-Frameworks/vim.section.png" >
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#vim" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="Aux Docs" class="md-header__button md-logo" aria-label="Aux Docs" data-md-component="logo">
<img src="../../../assets/aux-logo.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Aux Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Vim
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Dark Mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Dark Mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Light Mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Light Mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
</label>
</form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</div>
<div class="md-source__repository">
auxolotl/docs
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Aux Documentation Hub
</a>
</li>
<li class="md-tabs__item">
<a href="../../../TODO/" class="md-tabs__link">
TODO
</a>
</li>
<li class="md-tabs__item">
<a href="../../../Aux/" class="md-tabs__link">
Aux
</a>
</li>
<li class="md-tabs__item">
<a href="../../../Lix/" class="md-tabs__link">
Lix
</a>
</li>
<li class="md-tabs__item">
<a href="../../../NixOS/appstream/" class="md-tabs__link">
NixOS
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../" class="md-tabs__link">
Nixpkgs
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="Aux Docs" class="md-nav__button md-logo" aria-label="Aux Docs" data-md-component="logo">
<img src="../../../assets/aux-logo.svg" alt="logo">
</a>
Aux Docs
</label>
<div class="md-nav__source">
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</div>
<div class="md-source__repository">
auxolotl/docs
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Aux Documentation Hub
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../TODO/" class="md-nav__link">
<span class="md-ellipsis">
TODO
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../Aux/" class="md-nav__link">
<span class="md-ellipsis">
Aux
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../Lix/" class="md-nav__link">
<span class="md-ellipsis">
Lix
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../NixOS/appstream/" class="md-nav__link">
<span class="md-ellipsis">
NixOS
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<div class="md-nav__link md-nav__container">
<a href="../../" class="md-nav__link ">
<span class="md-ellipsis">
Nixpkgs
</span>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Nixpkgs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../options/" class="md-nav__link">
<span class="md-ellipsis">
Options
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Build-Helpers/" class="md-nav__link">
<span class="md-ellipsis">
Build Helpers
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Development/" class="md-nav__link">
<span class="md-ellipsis">
Development
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Functions/" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Hooks/" class="md-nav__link">
<span class="md-ellipsis">
Hooks
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_7" checked>
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
Languages And Frameworks
</span>
</a>
<label class="md-nav__link " for="__nav_6_7" id="__nav_6_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_7_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6_7">
<span class="md-nav__icon md-icon"></span>
Languages And Frameworks
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../agda.section/" class="md-nav__link">
<span class="md-ellipsis">
Agda
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../android.section/" class="md-nav__link">
<span class="md-ellipsis">
Android
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../beam.section/" class="md-nav__link">
<span class="md-ellipsis">
BEAM Languages (Erlang, Elixir &amp; LFE)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../bower.section/" class="md-nav__link">
<span class="md-ellipsis">
Bower
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../chicken.section/" class="md-nav__link">
<span class="md-ellipsis">
CHICKEN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../coq.section/" class="md-nav__link">
<span class="md-ellipsis">
Coq and coq packages
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../crystal.section/" class="md-nav__link">
<span class="md-ellipsis">
Crystal
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cuda.section/" class="md-nav__link">
<span class="md-ellipsis">
CUDA
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cuelang.section/" class="md-nav__link">
<span class="md-ellipsis">
Cue (Cuelang)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dart.section/" class="md-nav__link">
<span class="md-ellipsis">
Dart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dhall.section/" class="md-nav__link">
<span class="md-ellipsis">
Dhall
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dlang.section/" class="md-nav__link">
<span class="md-ellipsis">
D (Dlang)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet.section/" class="md-nav__link">
<span class="md-ellipsis">
Dotnet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../emscripten.section/" class="md-nav__link">
<span class="md-ellipsis">
Emscripten
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gnome.section/" class="md-nav__link">
<span class="md-ellipsis">
GNOME
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../go.section/" class="md-nav__link">
<span class="md-ellipsis">
Go
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gradle.section/" class="md-nav__link">
<span class="md-ellipsis">
Gradle
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hare.section/" class="md-nav__link">
<span class="md-ellipsis">
Hare
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../haskell.section/" class="md-nav__link">
<span class="md-ellipsis">
Haskell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hy.section/" class="md-nav__link">
<span class="md-ellipsis">
Hy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../idris.section/" class="md-nav__link">
<span class="md-ellipsis">
Idris
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../idris2.section/" class="md-nav__link">
<span class="md-ellipsis">
Idris2
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ios.section/" class="md-nav__link">
<span class="md-ellipsis">
iOS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../java.section/" class="md-nav__link">
<span class="md-ellipsis">
Java
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript.section/" class="md-nav__link">
<span class="md-ellipsis">
Javascript
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../julia.section/" class="md-nav__link">
<span class="md-ellipsis">
Julia
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../lisp.section/" class="md-nav__link">
<span class="md-ellipsis">
lisp-modules
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../lua.section/" class="md-nav__link">
<span class="md-ellipsis">
Lua
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../maven.section/" class="md-nav__link">
<span class="md-ellipsis">
Maven
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nim.section/" class="md-nav__link">
<span class="md-ellipsis">
Nim
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ocaml.section/" class="md-nav__link">
<span class="md-ellipsis">
OCaml
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../octave.section/" class="md-nav__link">
<span class="md-ellipsis">
Octave
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../perl.section/" class="md-nav__link">
<span class="md-ellipsis">
Perl
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php.section/" class="md-nav__link">
<span class="md-ellipsis">
PHP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../pkg-config.section/" class="md-nav__link">
<span class="md-ellipsis">
pkg-config
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python.section/" class="md-nav__link">
<span class="md-ellipsis">
Python
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../qt.section/" class="md-nav__link">
<span class="md-ellipsis">
Qt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../r.section/" class="md-nav__link">
<span class="md-ellipsis">
R
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ruby.section/" class="md-nav__link">
<span class="md-ellipsis">
Ruby
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rust.section/" class="md-nav__link">
<span class="md-ellipsis">
Rust
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../scheme.section/" class="md-nav__link">
<span class="md-ellipsis">
Scheme
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../swift.section/" class="md-nav__link">
<span class="md-ellipsis">
Swift
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../texlive.section/" class="md-nav__link">
<span class="md-ellipsis">
TeX Live
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../titanium.section/" class="md-nav__link">
<span class="md-ellipsis">
Titanium
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Vim
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Vim
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#custom-configuration" class="md-nav__link">
<span class="md-ellipsis">
Custom configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#managing-plugins-with-vim-packages" class="md-nav__link">
<span class="md-ellipsis">
Managing plugins with Vim packages
</span>
</a>
<nav class="md-nav" aria-label="Managing plugins with Vim packages">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#what-if-your-favourite-vim-plugin-isnt-already-packaged" class="md-nav__link">
<span class="md-ellipsis">
What if your favourite Vim plugin isnt already packaged?
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#vim-plugin-specificities" class="md-nav__link">
<span class="md-ellipsis">
Specificities for some plugins
</span>
</a>
<nav class="md-nav" aria-label="Specificities for some plugins">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#vim-plugin-treesitter" class="md-nav__link">
<span class="md-ellipsis">
Treesitter
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#managing-plugins-with-vim-plug" class="md-nav__link">
<span class="md-ellipsis">
Managing plugins with vim-plug
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#adding-new-plugins-to-nixpkgs" class="md-nav__link">
<span class="md-ellipsis">
Adding new plugins to nixpkgs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#updating-plugins-in-nixpkgs" class="md-nav__link">
<span class="md-ellipsis">
Updating plugins in nixpkgs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#vim-out-of-tree-overlays" class="md-nav__link">
<span class="md-ellipsis">
How to maintain an out-of-tree overlay of vim plugins ?
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Library-Reference/asserts/" class="md-nav__link">
<span class="md-ellipsis">
Library Reference
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Module-System/module-system.chapter/" class="md-nav__link">
<span class="md-ellipsis">
Module System
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Packages/" class="md-nav__link">
<span class="md-ellipsis">
Packages
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Standard-Environment/" class="md-nav__link">
<span class="md-ellipsis">
Standard Environment
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Using-Nixpkgs/" class="md-nav__link">
<span class="md-ellipsis">
Using Nixpkgs
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#custom-configuration" class="md-nav__link">
<span class="md-ellipsis">
Custom configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#managing-plugins-with-vim-packages" class="md-nav__link">
<span class="md-ellipsis">
Managing plugins with Vim packages
</span>
</a>
<nav class="md-nav" aria-label="Managing plugins with Vim packages">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#what-if-your-favourite-vim-plugin-isnt-already-packaged" class="md-nav__link">
<span class="md-ellipsis">
What if your favourite Vim plugin isnt already packaged?
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#vim-plugin-specificities" class="md-nav__link">
<span class="md-ellipsis">
Specificities for some plugins
</span>
</a>
<nav class="md-nav" aria-label="Specificities for some plugins">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#vim-plugin-treesitter" class="md-nav__link">
<span class="md-ellipsis">
Treesitter
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#managing-plugins-with-vim-plug" class="md-nav__link">
<span class="md-ellipsis">
Managing plugins with vim-plug
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#adding-new-plugins-to-nixpkgs" class="md-nav__link">
<span class="md-ellipsis">
Adding new plugins to nixpkgs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#updating-plugins-in-nixpkgs" class="md-nav__link">
<span class="md-ellipsis">
Updating plugins in nixpkgs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#vim-out-of-tree-overlays" class="md-nav__link">
<span class="md-ellipsis">
How to maintain an out-of-tree overlay of vim plugins ?
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="vim">Vim</h1>
<p>Both Neovim and Vim can be configured to include your favorite plugins
and additional libraries.</p>
<p>Loading can be deferred; see examples.</p>
<p>At the moment we support two different methods for managing plugins:</p>
<ul>
<li>Vim packages (<em>recommended</em>)</li>
<li>vim-plug (vim only)</li>
</ul>
<p>Right now two Vim packages are available: <code>vim</code> which has most features that require extra
dependencies disabled and <code>vim-full</code> which has them configurable and enabled by default.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code>vim_configurable</code> is a deprecated alias for <code>vim-full</code> and refers to the fact that its
build-time features are configurable. It has nothing to do with user configuration,
and both the <code>vim</code> and <code>vim-full</code> packages can be customized as explained in the next section.</p>
</div>
<h2 id="custom-configuration">Custom configuration</h2>
<p>Adding custom .vimrc lines can be done using the following code:</p>
<div class="highlight"><pre><span></span><code>vim-full<span class="o">.</span>customize <span class="p">{</span>
<span class="c1"># `name` optionally specifies the name of the executable and package</span>
<span class="ss">name</span> <span class="o">=</span> <span class="s2">&quot;vim-with-plugins&quot;</span><span class="p">;</span>
vimrcConfig<span class="o">.</span><span class="ss">customRC</span> <span class="o">=</span> <span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> set hidden</span>
<span class="s s-Multiline"> &#39;&#39;</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div>
<p>This configuration is used when Vim is invoked with the command specified as name, in this case <code>vim-with-plugins</code>.
You can also omit <code>name</code> to customize Vim itself. See the
<a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-utils.nix#L408">definition of <code>vimUtils.makeCustomizable</code></a>
for all supported options.</p>
<p>For Neovim the <code>configure</code> argument can be overridden to achieve the same:</p>
<div class="highlight"><pre><span></span><code>neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">customRC</span> <span class="o">=</span> <span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> # here your custom configuration goes!</span>
<span class="s s-Multiline"> &#39;&#39;</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p>If you want to use <code>neovim-qt</code> as a graphical editor, you can configure it by overriding Neovim in an overlay
or passing it an overridden Neovim:</p>
<div class="highlight"><pre><span></span><code>neovim-qt<span class="o">.</span>override <span class="p">{</span>
<span class="ss">neovim</span> <span class="o">=</span> neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">customRC</span> <span class="o">=</span> <span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> # your custom configuration</span>
<span class="s s-Multiline"> &#39;&#39;</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="managing-plugins-with-vim-packages">Managing plugins with Vim packages</h2>
<p>To store your plugins in Vim packages (the native Vim plugin manager, see <code>:help packages</code>) the following example can be used:</p>
<div class="highlight"><pre><span></span><code>vim-full<span class="o">.</span>customize <span class="p">{</span>
vimrcConfig<span class="o">.</span>packages<span class="o">.</span><span class="ss">myVimPackage</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="o">.</span>vimPlugins<span class="p">;</span> <span class="p">{</span>
<span class="c1"># loaded on launch</span>
<span class="ss">start</span> <span class="o">=</span> <span class="p">[</span> youcompleteme fugitive <span class="p">];</span>
<span class="c1"># manually loadable by calling `:packadd $plugin-name`</span>
<span class="c1"># however, if a Vim plugin has a dependency that is not explicitly listed in</span>
<span class="c1"># opt that dependency will always be added to start to avoid confusion.</span>
<span class="ss">opt</span> <span class="o">=</span> <span class="p">[</span> phpCompletion elm-vim <span class="p">];</span>
<span class="c1"># To automatically load a plugin when opening a filetype, add vimrc lines like:</span>
<span class="c1"># autocmd FileType php :packadd phpCompletion</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p><code>myVimPackage</code> is an arbitrary name for the generated package. You can choose any name you like.
For Neovim the syntax is:</p>
<div class="highlight"><pre><span></span><code>neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">customRC</span> <span class="o">=</span> <span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> # here your custom configuration goes!</span>
<span class="s s-Multiline"> &#39;&#39;</span><span class="p">;</span>
packages<span class="o">.</span><span class="ss">myVimPackage</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="o">.</span>vimPlugins<span class="p">;</span> <span class="p">{</span>
<span class="c1"># see examples below how to use custom packages</span>
<span class="ss">start</span> <span class="o">=</span> <span class="p">[</span> <span class="p">];</span>
<span class="c1"># If a Vim plugin has a dependency that is not explicitly listed in</span>
<span class="c1"># opt that dependency will always be added to start to avoid confusion.</span>
<span class="ss">opt</span> <span class="o">=</span> <span class="p">[</span> <span class="p">];</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p>The resulting package can be added to <code>packageOverrides</code> in <code>~/.nixpkgs/config.nix</code> to make it installable:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="ss">packageOverrides</span> <span class="o">=</span> pkgs<span class="p">:</span> <span class="k">with</span> pkgs<span class="p">;</span> <span class="p">{</span>
<span class="ss">myVim</span> <span class="o">=</span> vim-full<span class="o">.</span>customize <span class="p">{</span>
<span class="c1"># `name` specifies the name of the executable and package</span>
<span class="ss">name</span> <span class="o">=</span> <span class="s2">&quot;vim-with-plugins&quot;</span><span class="p">;</span>
<span class="c1"># add here code from the example section</span>
<span class="p">};</span>
<span class="ss">myNeovim</span> <span class="o">=</span> neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
<span class="c1"># add code from the example section here</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p>After that you can install your special grafted <code>myVim</code> or <code>myNeovim</code> packages.</p>
<h3 id="what-if-your-favourite-vim-plugin-isnt-already-packaged">What if your favourite Vim plugin isnt already packaged?</h3>
<p>If one of your favourite plugins isn't packaged, you can package it yourself:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> config<span class="p">,</span> pkgs<span class="p">,</span> <span class="o">...</span> <span class="p">}:</span>
<span class="k">let</span>
<span class="ss">easygrep</span> <span class="o">=</span> pkgs<span class="o">.</span>vimUtils<span class="o">.</span>buildVimPlugin <span class="p">{</span>
<span class="ss">name</span> <span class="o">=</span> <span class="s2">&quot;vim-easygrep&quot;</span><span class="p">;</span>
<span class="ss">src</span> <span class="o">=</span> pkgs<span class="o">.</span>fetchFromGitHub <span class="p">{</span>
<span class="ss">owner</span> <span class="o">=</span> <span class="s2">&quot;dkprice&quot;</span><span class="p">;</span>
<span class="ss">repo</span> <span class="o">=</span> <span class="s2">&quot;vim-easygrep&quot;</span><span class="p">;</span>
<span class="ss">rev</span> <span class="o">=</span> <span class="s2">&quot;d0c36a77cc63c22648e792796b1815b44164653a&quot;</span><span class="p">;</span>
<span class="ss">hash</span> <span class="o">=</span> <span class="s2">&quot;sha256-bL33/S+caNmEYGcMLNCanFZyEYUOUmSsedCVBn4tV3g=&quot;</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="k">in</span>
<span class="p">{</span>
environment<span class="o">.</span><span class="ss">systemPackages</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span>
pkgs<span class="o">.</span>neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
packages<span class="o">.</span><span class="ss">myPlugins</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="o">.</span>vimPlugins<span class="p">;</span> <span class="p">{</span>
<span class="ss">start</span> <span class="o">=</span> <span class="p">[</span>
vim-go <span class="c1"># already packaged plugin</span>
easygrep <span class="c1"># custom package</span>
<span class="p">];</span>
<span class="ss">opt</span> <span class="o">=</span> <span class="p">[];</span>
<span class="p">};</span>
<span class="c1"># ...</span>
<span class="p">};</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="p">];</span>
<span class="p">}</span>
</code></pre></div>
<p>If your package requires building specific parts, use instead <code>pkgs.vimUtils.buildVimPlugin</code>.</p>
<h3 id="vim-plugin-specificities">Specificities for some plugins</h3>
<h4 id="vim-plugin-treesitter">Treesitter</h4>
<p>By default <code>nvim-treesitter</code> encourages you to download, compile and install
the required Treesitter grammars at run time with <code>:TSInstall</code>. This works
poorly on NixOS. Instead, to install the <code>nvim-treesitter</code> plugins with a set
of precompiled grammars, you can use <code>nvim-treesitter.withPlugins</code> function:</p>
<div class="highlight"><pre><span></span><code><span class="p">(</span>pkgs<span class="o">.</span>neovim<span class="o">.</span>override <span class="p">{</span>
<span class="ss">configure</span> <span class="o">=</span> <span class="p">{</span>
packages<span class="o">.</span><span class="ss">myPlugins</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="o">.</span>vimPlugins<span class="p">;</span> <span class="p">{</span>
<span class="ss">start</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span>nvim-treesitter<span class="o">.</span>withPlugins <span class="p">(</span>
plugins<span class="p">:</span> <span class="k">with</span> plugins<span class="p">;</span> <span class="p">[</span>
nix
python
<span class="p">]</span>
<span class="p">))</span>
<span class="p">];</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">})</span>
</code></pre></div>
<p>To enable all grammars packaged in nixpkgs, use <code>pkgs.vimPlugins.nvim-treesitter.withAllGrammars</code>.</p>
<h2 id="managing-plugins-with-vim-plug">Managing plugins with vim-plug</h2>
<p>To use <a href="https://github.com/junegunn/vim-plug">vim-plug</a> to manage your Vim
plugins the following example can be used:</p>
<div class="highlight"><pre><span></span><code>vim-full<span class="o">.</span>customize <span class="p">{</span>
vimrcConfig<span class="o">.</span>packages<span class="o">.</span><span class="ss">myVimPackage</span> <span class="o">=</span> <span class="k">with</span> pkgs<span class="o">.</span>vimPlugins<span class="p">;</span> <span class="p">{</span>
<span class="c1"># loaded on launch</span>
plug<span class="o">.</span><span class="ss">plugins</span> <span class="o">=</span> <span class="p">[</span> youcompleteme fugitive phpCompletion elm-vim <span class="p">];</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p>Note: this is not possible anymore for Neovim.</p>
<h2 id="adding-new-plugins-to-nixpkgs">Adding new plugins to nixpkgs</h2>
<p>Nix expressions for Vim plugins are stored in <a href="https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/editors/vim/plugins">pkgs/applications/editors/vim/plugins</a>. For the vast majority of plugins, Nix expressions are automatically generated by running <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/updater.nix"><code>nix-shell -p vimPluginsUpdater --run vim-plugins-updater</code></a>. This creates a <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/generated.nix">generated.nix</a> file based on the plugins listed in <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-plugin-names">vim-plugin-names</a>.</p>
<p>When the vim updater detects an nvim-treesitter update, it also runs <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/update.py"><code>nvim-treesitter/update.py $(nix-build -A vimPlugins.nvim-treesitter)</code></a> to update the tree sitter grammars for <code>nvim-treesitter</code>.</p>
<p>Some plugins require overrides in order to function properly. Overrides are placed in <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix">overrides.nix</a>. Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example <code>deoplete-fish</code> requires both <code>deoplete-nvim</code> and <code>vim-fish</code>, and so the following override was added:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="ss">deoplete-fish</span> <span class="o">=</span> super<span class="o">.</span>deoplete-fish<span class="o">.</span>overrideAttrs<span class="p">(</span>old<span class="p">:</span> <span class="p">{</span>
<span class="ss">dependencies</span> <span class="o">=</span> <span class="k">with</span> super<span class="p">;</span> <span class="p">[</span> deoplete-nvim vim-fish <span class="p">];</span>
<span class="p">});</span>
<span class="p">}</span>
</code></pre></div>
<p>Sometimes plugins require an override that must be changed when the plugin is updated. This can cause issues when Vim plugins are auto-updated but the associated override isn't updated. For these plugins, the override should be written so that it specifies all information required to install the plugin, and running <code>nix-shell -p vimPluginsUpdater --run vim-plugins-updater</code> doesn't change the derivation for the plugin. Manually updating the override is required to update these types of plugins. An example of such a plugin is <code>LanguageClient-neovim</code>.</p>
<p>To add a new plugin, run <code>nix-shell -p vimPluginsUpdater --run 'vim-plugins-updater add "[owner]/[name]"'</code>. <strong>NOTE</strong>: This script automatically commits to your git repository. Be sure to check out a fresh branch before running.</p>
<p>Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in <code>vim-plugin-names</code> or managed by <code>vimPluginsUpdater</code> at all, and are included separately in <code>overrides.nix</code>. Currently, all these plugins are related to the <code>coc.nvim</code> ecosystem of the Language Server Protocol integration with Vim/Neovim.</p>
<h2 id="updating-plugins-in-nixpkgs">Updating plugins in nixpkgs</h2>
<p>Run the update script with a GitHub API token that has at least <code>public_repo</code> access. Running the script without the token is likely to result in rate-limiting (429 errors). For steps on creating an API token, please refer to <a href="https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token">GitHub's token documentation</a>.</p>
<div class="highlight"><pre><span></span><code>nix-shell<span class="w"> </span>-p<span class="w"> </span>vimPluginsUpdater<span class="w"> </span>--run<span class="w"> </span><span class="s1">&#39;vim-plugins-updater --github-token=mytoken&#39;</span><span class="w"> </span><span class="c1"># or set GITHUB_API_TOKEN environment variable</span>
</code></pre></div>
<p>Alternatively, set the number of processes to a lower count to avoid rate-limiting.</p>
<div class="highlight"><pre><span></span><code>nix-shell<span class="w"> </span>-p<span class="w"> </span>vimPluginsUpdater<span class="w"> </span>--run<span class="w"> </span><span class="s1">&#39;vim-plugins-updater --proc 1&#39;</span>
</code></pre></div>
<h2 id="vim-out-of-tree-overlays">How to maintain an out-of-tree overlay of vim plugins ?</h2>
<p>You can use the updater script to generate basic packages out of a custom vim
plugin list:</p>
<div class="highlight"><pre><span></span><code>nix-shell -p vimPluginsUpdater --run vim-plugins-updater -i vim-plugin-names -o generated.nix --no-commit
</code></pre></div>
<p>with the contents of <code>vim-plugin-names</code> being for example:</p>
<div class="highlight"><pre><span></span><code>repo,branch,alias
pwntester/octo.nvim,,
</code></pre></div>
<p>You can then reference the generated vim plugins via:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="ss">myVimPlugins</span> <span class="o">=</span> pkgs<span class="o">.</span>vimPlugins<span class="o">.</span>extend <span class="p">(</span>
<span class="p">(</span>pkgs<span class="o">.</span>callPackage <span class="l">./generated.nix</span> <span class="p">{})</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre></div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Licenced MIT
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://git.auxolotl.org/auxolotl/docs" target="_blank" rel="noopener" title="Aux Docs Repo" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</a>
<a href="https://forum.aux.computer/" target="_blank" rel="noopener" title="Aux Forum" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"/></svg>
</a>
<a href="https://wiki.auxolotl.org/" target="_blank" rel="noopener" title="Aux Wiki" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.801 13.557c.148.098.288.202.417.313 1.854 1.6 3.127 4.656 2.582 7.311-1.091-.255-5.747-1.055-7.638-3.383-.91-1.12-1.366-2.081-1.569-2.885a5.65 5.65 0 0 0 .034-.219c.089.198.197.35.313.466.24.24.521.335.766.372.304.046.594-.006.806-.068l.001.001c.05-.015.433-.116.86-.342.325-.173 2.008-.931 3.428-1.566Zm-7.384 1.435C9.156 16.597 6.6 18.939.614 18.417c.219-1.492 1.31-3.019 2.51-4.11.379-.345.906-.692 1.506-1.009.286.168.598.332.939.486 2.689 1.221 3.903 1.001 4.89.573a1.3 1.3 0 0 0 .054-.025 6.156 6.156 0 0 0-.096.66Zm4.152-.462c.38-.341.877-.916 1.383-1.559-.389-.15-.866-.371-1.319-.591-.598-.29-1.305-.283-2.073-.315a4.685 4.685 0 0 1-.804-.103c.014-.123.027-.246.038-.369.062.104.673.057.871.057.354 0 1.621.034 3.074-.574 1.452-.608 2.55-1.706 3.022-3.225.474-1.52.22-3.091-.168-3.952-.169.709-1.453 2.381-1.926 2.871-.473.489-2.381 2.296-2.972 2.921-.7.74-.688.793-1.332 1.302-.202.19-.499.402-.563.53.027-.338.039-.675.027-.997a7.653 7.653 0 0 0-.032-.523c.322-.059.567-.522.567-.861 0-.224-.106-.247-.271-.229.075-.894.382-3.923 1.254-4.281.218.109.831.068.649-.295-.182-.364-.825-.074-1.081.266-.28.374-.956 2.046-.92 4.324-.113.014-.174.033-.322.033-.171 0-.321-.04-.433-.05.034-2.275-.714-3.772-.84-4.169-.12-.375-.491-.596-.781-.596-.146 0-.272.056-.333.179-.182.363.459.417.677.308.706.321 1.156 3.519 1.254 4.277-.125-.006-.199.035-.199.233 0 .311.17.756.452.843a.442.442 0 0 0-.007.03s-.287.99-.413 2.189a4.665 4.665 0 0 1-.718-.225c-.714-.286-1.355-.583-2.019-.566-.664.018-1.366.023-1.804-.036-.438-.058-.649-.15-.649-.15s-.234.365.257 1.075c.42.607 1.055 1.047 1.644 1.18.589.134 1.972.18 2.785-.377.16-.109.317-.228.459-.34a8.717 8.717 0 0 0-.013.626c-.289.753-.571 1.993-.268 3.338 0-.001.701-.842.787-2.958.006-.144.009-.271.01-.383.052-.248.103-.518.148-.799.072.135.151.277.234.413.511.842 1.791 1.37 2.383 1.49.091.019.187.032.285.038Zm-1.12.745c-.188.055-.445.1-.713.059-.21-.031-.45-.11-.655-.316-.169-.168-.312-.419-.401-.789a9.837 9.837 0 0 0 .039-.82l.049-.243c.563.855 1.865 1.398 2.476 1.522.036.008.072.014.109.02l-.013.009c-.579.415-.76.503-.891.558Zm6.333-2.818c-.257.114-4.111 1.822-5.246 2.363.98-.775 3.017-3.59 3.699-4.774 1.062.661 1.468 1.109 1.623 1.441.101.217.09.38.096.515a.57.57 0 0 1-.172.455Zm-9.213 1.62a1.606 1.606 0 0 1-.19.096c-.954.414-2.126.61-4.728-.571-2.023-.918-3.024-2.157-3.371-2.666.476.161 1.471.473 2.157.524.282.021.703.068 1.167.125.021.209.109.486.345.829l.001.001c.451.651 1.134 1.119 1.765 1.262.622.141 2.083.182 2.942-.407a3.12 3.12 0 0 0 .132-.093l.001.179a6.052 6.052 0 0 0-.221.721Zm5.512-1.271a17.49 17.49 0 0 1-1.326-.589c.437.042 1.054.083 1.692.108-.121.162-.244.323-.366.481Zm.932-1.26c-.12.17-.245.343-.373.517-.241.018-.478.03-.709.038a29.05 29.05 0 0 1-.741-.048c.608-.065 1.228-.252 1.823-.507Zm.22-.315c-.809.382-1.679.648-2.507.648-.472 0-.833.018-1.139.039v.001c-.324-.031-.665-.039-1.019-.054a3.555 3.555 0 0 1-.152-.009c.102-.002.192-.006.249-.006.363 0 1.662.034 3.151-.589 1.508-.632 2.645-1.773 3.136-3.351.37-1.186.31-2.402.086-3.312.458-.336.86-.651 1.147-.91.501-.451.743-.733.848-.869.199.206.714.864.685 2.138-.036 1.611-.606 3.187-1.501 4.154a9.099 9.099 0 0 1-1.321 1.132 11.978 11.978 0 0 0-.644-.422l-.089-.055-.051.091c-.184.332-.5.825-.879 1.374ZM4.763 5.817c-.157 1.144.113 2.323.652 3.099.539.776 2.088 2.29 3.614 2.505.991.14 2.055.134 2.055.134s-.593-.576-1.114-1.66c-.521-1.085-.948-2.104-1.734-2.786-.785-.681-1.601-1.416-2.045-1.945-.444-.53-.59-.86-.59-.86s-.656.175-.838 1.513Zm14.301 4.549a9.162 9.162 0 0 0 1.3-1.12c.326-.352.611-.782.845-1.265 1.315.145 2.399.371 2.791.434 0 0-.679 1.971-3.945 3.022l-.016-.035c-.121-.26-.385-.594-.975-1.036Zm-11.634.859a8.537 8.537 0 0 1-.598-.224c-1.657-.693-2.91-1.944-3.449-3.678-.498-1.601-.292-3.251.091-4.269.225.544.758 1.34 1.262 2.01a3.58 3.58 0 0 0-.172.726c-.163 1.197.123 2.428.687 3.24.416.599 1.417 1.62 2.555 2.193-.128.002-.253.003-.376.002Zm-1.758-.077c-.958-.341-1.901-.787-2.697-1.368C-.07 7.559 0 6.827 0 6.827s1.558-.005 3.088.179c.03.126.065.251.104.377.557 1.791 1.851 3.086 3.562 3.803l.047.019a4.254 4.254 0 0 1-.267-.026h-.001c-.401-.053-.595-.135-.595-.135l-.157-.069-.092.144-.017.029Zm6.807-1.59c.086.017.136.058.136.145 0 .197-.242.5-.597.597l-.01-.161a.887.887 0 0 0 .283-.243c.078-.099.142-.217.188-.338Zm-1.591.006c.033.1.076.197.129.282.061.097.134.18.217.24l-.021.083c-.276-.093-.424-.293-.424-.466 0-.078.035-.119.099-.139Zm-.025-.664c-.275-.816-.795-2.022-1.505-2.179-.296.072-.938.096-.691-.145.246-.24 1.085-.048 1.283.217.145.194.744.806 1.011 1.737l.032.227a.324.324 0 0 0-.13.143Zm1.454-.266c.251-.99.889-1.639 1.039-1.841.197-.265 1.036-.457 1.283-.217.247.241-.395.217-.691.145-.69.152-1.2 1.296-1.481 2.109a.364.364 0 0 0-.067-.059.37.37 0 0 0-.092-.043l.009-.094Zm4.802-2.708a9.875 9.875 0 0 1-.596.705c-.304.315-1.203 1.176-1.963 1.916.647-.955 1.303-1.806 2.184-2.376.123-.08.249-.161.375-.245Z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.tooltips", "search.highlight", "navigation.tabs", "navigation.indexes", "navigation.prune"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
</body>
</html>