<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: vim</title>
  <id>https://pype.dev/tags/vim/atom.xml</id>
  <updated>2022-12-21T09:45:34Z</updated>
  <subtitle>All posts with the tag &#34;vim&#34;</subtitle>
  <link href="https://pype.dev/tags/vim/" rel="alternate" type="text/html"></link>
  <link href="https://pype.dev/tags/vim/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Nic Payne</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>suda.vim for sudo access to files</title>
    <id>https://pype.dev/suda-vim-for-sudo-access-to-files/</id>
    <updated>2022-12-21T09:45:34Z</updated>
    <published>2022-12-21T09:45:34Z</published>
    <link href="https://pype.dev/suda-vim-for-sudo-access-to-files/" rel="alternate" type="text/html"></link>
    <summary type="text">I regularly need to edit system config files - take /etc/sanoid/sanoid.conf as an example... I&#39;ll want to play with something but if I don&#39;t start Neovim as...</summary>
    <content type="html">&lt;p&gt;I regularly need to edit system config files - take /etc/sanoid/sanoid.conf as&#xA;an example&amp;hellip; I&amp;rsquo;ll want to play with something but if I don&amp;rsquo;t start Neovim as&#xA;root then I get in trouble making edits I can&amp;rsquo;t save! So&#xA;&lt;a href=&#34;https://github.com/lambdalisue/suda.vim&#34;&gt;suda.vim&lt;/a&gt; gives me&#xA;&lt;code&gt;:SudaWrite&lt;/code&gt; which let&amp;rsquo;s me write that buffer with sudo privileges even though&#xA;I&amp;rsquo;m Neovim is running with my login user!&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>New lines in Markdown tables</title>
    <id>https://pype.dev/new-lines-in-markdown-tables/</id>
    <updated>2022-11-25T13:35:05Z</updated>
    <published>2022-11-25T13:35:05Z</published>
    <link href="https://pype.dev/new-lines-in-markdown-tables/" rel="alternate" type="text/html"></link>
    <summary type="text">I wanted to break down some long lines in a Markdown table cell to make it look nicer on my blog but \n didn&#39;t do anything for me... turns out is the magic...</summary>
    <content type="html">&lt;p&gt;I wanted to break down some long lines in a Markdown table cell to make it look&#xA;nicer on my blog but \n didn&amp;rsquo;t do anything for me&amp;hellip; turns out &lt;br/&gt; is the&#xA;magic sauce&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;&lt;em&gt;Column 1&lt;/em&gt;&lt;/th&gt;&#xA;&lt;th&gt;&lt;em&gt;Column 2&lt;/em&gt;&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Key&lt;/td&gt;&#xA;&lt;td&gt;Doggo ipsum many pats. Borkdrive borking doggo doing me a frighten doggorino, noodle horse heckin. what a nice floof. Pupper borking doggo you are doing me a frighten, much ruin diet.&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&amp;mdash;&lt;/td&gt;&#xA;&lt;td&gt;&amp;mdash;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;&lt;em&gt;Column 1&lt;/em&gt;&lt;/th&gt;&#xA;&lt;th&gt;&lt;em&gt;Column 2&lt;/em&gt;&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Key&lt;/td&gt;&#xA;&lt;td&gt;Doggo ipsum many pats. &lt;br/&gt; Borkdrive borking doggo doing me a frighten doggorino, noodle horse heckin. &lt;br/&gt; what a nice floof. &lt;br/&gt; Pupper borking doggo you are doing me a frighten, much ruin diet.&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&amp;mdash;&lt;/td&gt;&#xA;&lt;td&gt;&amp;mdash;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Description of my proposed vimconf 2022 talk</title>
    <id>https://pype.dev/description-of-my-proposed-vimconf-2022-talk/</id>
    <updated>2022-11-12T19:39:19Z</updated>
    <published>2022-11-12T19:39:19Z</published>
    <link href="https://pype.dev/description-of-my-proposed-vimconf-2022-talk/" rel="alternate" type="text/html"></link>
    <summary type="text">Switching to Vim opened a whole new world to me for interacting with a computer and for getting things done. Before I adopted Vim I used GUIs for everything...</summary>
    <content type="html">&lt;p&gt;Switching to Vim opened a whole new world to me for interacting with a computer&#xA;and for getting things done. Before I adopted Vim I used GUIs for everything&#xA;because I thought that&amp;rsquo;s how it had to be done&amp;hellip; Notes in OneNote, code using&#xA;a GUI editor, different notes in TiddlyWiki, slides for work in PowerPoint,&#xA;slides for church using Logos, etc&amp;hellip; Adopting Vim allowed me to disconnect a&#xA;specific tool from the problem that tool is solving - because usually I just&#xA;need to write text (notes, code, slides, etc.). Now, very nearly everything I&#xA;do is from a text-based and git-based workflow&amp;hellip; I put all my notes on&#xA;basically anything just in my blog, which is all markdown and deployed to GH&#xA;with Markata on every push (living dangerously pushing to main) - and that&amp;rsquo;s&#xA;all done easily from Vim with nice syntax highlighting, fast response,&#xA;integrated git-plugins, etc.. I keep project-specific task lists just in&#xA;markdown files and I have Vim/tmux shortcuts to quickly add todos for any&#xA;project (todo list is done with markata todoui) and I can get there fast&#xA;because my Vim workflow dovetails with Tmux nicely. Also I can pull that list&#xA;up right from the terminal, which I&amp;rsquo;m already in because Vim&amp;hellip;. Vim also&#xA;pushed me into the cli more - because Vim is so easily extended with cli tools&#xA;and I&amp;rsquo;m already in the terminal&amp;hellip; The builtin functionality also made things&#xA;make more sense - no more right-click, find &amp;ldquo;refactor all&amp;rdquo; or &amp;ldquo;rename symbol&amp;rdquo;&#xA;(for some stupid reason)&amp;hellip; Vim find-replace is so intuitive and if I need it&#xA;extended then I learned what sed was because of Vim. Moving quickly in Vim also&#xA;enables me to do my job incredibly fast because I hop into several projects a&#xA;day in a coaching role - if I was bound by GUIs I&amp;rsquo;d be waiting forever for&#xA;startup, would lose which GUI instance was which project, etc&amp;hellip; Being in the&#xA;terminal also made Tmux a trivial choice - now I have 90 tmux sessions, all&#xA;named appropriately, ready for me to jump back to and all while keeping the&#xA;majority of RAM still free for Chrome. Vim as my IDE also forced me to learn&#xA;way more about Python (I&amp;rsquo;m a python developer primarily), how LSP works, how to&#xA;configure a development environment, etc&amp;hellip; things I took for granted in my GUI&#xA;workflows, or never knew, or worse - thought I knew but deeply misunderstood.&#xA;Now that I understand them better, I can coach my peers more effectively even&#xA;if they are still in a GUI-based ecosystem.&lt;/p&gt;&#xA;&lt;p&gt;Basically, (Neo)Vim actually did change my life and I&amp;rsquo;m really thankful for it&#xA;(maybe that should be the title?)&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Case-insensitive search in Vim</title>
    <id>https://pype.dev/case-insensitive-search-in-vim/</id>
    <updated>2022-10-21T06:40:21Z</updated>
    <published>2022-10-21T06:40:21Z</published>
    <link href="https://pype.dev/case-insensitive-search-in-vim/" rel="alternate" type="text/html"></link>
    <summary type="text">/mysearch\c will match mysearch, MYSEARCH, mYSeArCh...</summary>
    <content type="html">&lt;p&gt;/mysearch\c will match mysearch, MYSEARCH, mYSeArCh&amp;hellip;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Use the right lspsage, you dope!</title>
    <id>https://pype.dev/use-the-right-lspsage-you-dope/</id>
    <updated>2022-10-14T19:41:44Z</updated>
    <published>2022-10-14T19:41:44Z</published>
    <link href="https://pype.dev/use-the-right-lspsage-you-dope/" rel="alternate" type="text/html"></link>
    <summary type="text">If you think glepnir/lspsaga.nvim config will work with tali5/lspsaga.nvim installed... you&#39;re in for a rude awakening. Double check your forks folks!</summary>
    <content type="html">&lt;p&gt;If you think glepnir/lspsaga.nvim config will work with tali5/lspsaga.nvim installed&amp;hellip; you&amp;rsquo;re in for a rude awakening. Double check your forks folks!&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Playing with mdformat</title>
    <id>https://pype.dev/playing-with-mdformat/</id>
    <updated>2022-08-23T06:56:15Z</updated>
    <published>2022-08-23T06:56:15Z</published>
    <link href="https://pype.dev/playing-with-mdformat/" rel="alternate" type="text/html"></link>
    <content type="html">&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;what is taking so long black!!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>See git history about one file</title>
    <id>https://pype.dev/see-git-history-about-one-file/</id>
    <updated>2022-05-19T06:43:32Z</updated>
    <published>2022-05-19T06:43:32Z</published>
    <link href="https://pype.dev/see-git-history-about-one-file/" rel="alternate" type="text/html"></link>
    <summary type="text">In vim does a . You get every commit that the target file is apart of (so there might be info in those commits unrelated)</summary>
    <content type="html">&lt;p&gt;In vim &lt;code&gt;G clog %&lt;/code&gt; does a &lt;code&gt;git clog {current file}&lt;/code&gt;. You get every commit that the target file is apart of (so there might be info in those commits unrelated)&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Plug Snapshot!</title>
    <id>https://pype.dev/plug-snapshot/</id>
    <updated>2022-05-17T15:45:49Z</updated>
    <published>2022-05-17T15:45:49Z</published>
    <link href="https://pype.dev/plug-snapshot/" rel="alternate" type="text/html"></link>
    <summary type="text">:PlugSnapshot, :w ~/dotfiles/nvim/snapshot.vim... keep your config safe with git!</summary>
    <content type="html">&lt;p&gt;:PlugSnapshot, :w ~/dotfiles/nvim/snapshot.vim&amp;hellip; keep your config safe with git!&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Filepath Completion in Neovim</title>
    <id>https://pype.dev/filepath-completion-in-neovim/</id>
    <updated>2022-05-17T14:03:27Z</updated>
    <published>2022-05-17T14:03:27Z</published>
    <link href="https://pype.dev/filepath-completion-in-neovim/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;ve had in my plugins for ever but didn&#39;t notice until recently that I wasn&#39;t getting any filepath completion in vim!</summary>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve had &lt;code&gt;Plug &#39;hrsh7th/cmp-path&#39;&lt;/code&gt; in my plugins for ever but didn&amp;rsquo;t notice&#xA;until recently that I wasn&amp;rsquo;t getting any filepath completion in vim!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fuller setup instructions below the TLDR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;tl-dr&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;TL;DR&lt;/span&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Turns out I need to not be a dope and configure nvim-cmp to actually use it&amp;hellip;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;require&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cmp&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;cmp.setup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;-- removed rest of setup - see the rest in my dotfiles&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;sources&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sources&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;path&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- This needs to be here!&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;my-setup&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;My Setup&lt;/span&gt;&lt;/h1&gt;&#xA;&lt;p&gt;For the sake of completeness here is how I currently (May 2022) configure completion in Neovim usin &lt;code&gt;nvim-cmp&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;plugins&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Plugins&lt;/span&gt; &lt;a href=&#34;#plugins&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I keep all my plugins in &lt;code&gt;plugins.vim&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;call&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;plug&lt;/span&gt;#&lt;span class=&#34;nx&#34;&gt;begin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;:&lt;span class=&#34;nx&#34;&gt;plug_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;neovim/nvim-lspconfig&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;hrsh7th/cmp-nvim-lsp&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;hrsh7th/cmp-buffer&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;hrsh7th/cmp-path&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;hrsh7th/cmp-cmdline&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;Plug&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;hrsh7th/nvim-cmp&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&amp;#34; For ultisnips users.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span class=&#34;c&#34;&gt;&amp;#34; Plug &amp;#39;SirVer/ultisnips&amp;#39; --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;!--&lt;/span&gt; &lt;span class=&#34;c&#34;&gt;&amp;#34; Plug &amp;#39;quangnguyen30192/cmp-nvim-ultisnips&amp;#39; --&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;call&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;plug&lt;/span&gt;#&lt;span class=&#34;nx&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;vim-settings&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Vim Settings&lt;/span&gt; &lt;a href=&#34;#vim-settings&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My vim settings are also kept in their own file, &lt;code&gt;settings.vim&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;completeopt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;menu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;menuone&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;noselect&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;nvim-cmp-configuration&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;nvim-cmp configuration&lt;/span&gt; &lt;a href=&#34;#nvim-cmp-configuration&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a &lt;code&gt;cmp.lua&lt;/code&gt; file that gets sourced in &lt;code&gt;init.lua&lt;/code&gt; (file structure explained below) for configuring cmp.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;-- Setup nvim-cmp.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;require&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cmp&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;cmp.setup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;snippet&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;-- REQUIRED - you must specify a snippet engine&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;expand&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;c1&#34;&gt;-- For `ultisnips` user.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;vim.fn&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;UltiSnips#Anon&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args.body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kr&#34;&gt;end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;window&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;completion&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;window.bordered&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;mapping&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;Down&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;select_next_item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;behavior&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.SelectBehavior&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Select&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;Up&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;select_prev_item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;behavior&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.SelectBehavior&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Select&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;C-d&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scroll_docs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;C-f&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scroll_docs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;C-Space&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;complete&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;C-e&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;Tab&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;select_next_item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;i&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;s&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;lt;CR&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.mapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;confirm&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;behavior&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.ConfirmBehavior&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;select&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;sources&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmp.config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sources&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;nvim_lsp&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;ultisnips&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;buffer&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;path&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;tmux&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;sources&lt;/code&gt; section is what was key for this post&amp;hellip;&lt;/p&gt;&#xA;&lt;h1 id=&#34;piecing-it-together&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Piecing it together!&lt;/span&gt;&lt;/h1&gt;&#xA;&lt;p&gt;My &lt;code&gt;init.vim&lt;/code&gt; sources plugins and then settings and then finally calls &lt;code&gt;init.lua&lt;/code&gt;.&#xA;&lt;code&gt;init.lua&lt;/code&gt; sources my &lt;code&gt;cmp.lua&lt;/code&gt; file and BANG! auto-completion.&lt;/p&gt;&#xA;&lt;h2 id=&#34;more-sources&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;More sources&lt;/span&gt; &lt;a href=&#34;#more-sources&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;hrsh7th&amp;rsquo;s wiki for &lt;code&gt;nvim-cmp&lt;/code&gt; is &lt;a href=&#34;https://github.com/hrsh7th/nvim-cmp/wiki/List-of-sources&#34;&gt;here&lt;/a&gt; and has example configs as well as a list of sources&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Don&amp;rsquo;t forget to configure and not just install!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/nicpayne713/dotfiles&#34;&gt;my dotfiles&lt;/a&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Vim-Spell-Check</title>
    <id>https://pype.dev/vim-spell-check/</id>
    <updated>2022-04-01T00:00:00Z</updated>
    <published>2022-04-01T00:00:00Z</published>
    <link href="https://pype.dev/vim-spell-check/" rel="alternate" type="text/html"></link>
    <summary type="text">__</summary>
    <content type="html">&lt;p&gt;&lt;strong&gt;Did you know you can spell check in Vim?!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;!DOCTYPE html&gt;&#xA;&lt;html&gt;&#xA;   &lt;head&gt;&#xA;      &lt;title&gt;Vim Spell check&lt;/title&gt;&#xA;   &lt;/head&gt;&#xA;   &lt;body&gt;&#xA;      &lt;h3 id=&#34;without&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Without...&lt;/span&gt; &lt;a href=&#34;#without&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;      &lt;p&gt;Here is a missspelled word.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;  &amp;lt;h3&amp;gt;With!&amp;lt;/h3&amp;gt;&#xA;  &amp;lt;p&amp;gt;Here is a &amp;lt;u&amp;gt;missspelled&amp;lt;/u&amp;gt; word.&amp;lt;/p&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;   &lt;/body&gt;&#xA;&lt;/html&gt;&#xA;&lt;h2 id=&#34;what-is-this-magic&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;What is this magic???&lt;/span&gt; &lt;a href=&#34;#what-is-this-magic&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;set: spell spelllang=en_us&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;custom-words&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Custom words?&lt;/span&gt; &lt;a href=&#34;#custom-words&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Sometimes there&amp;rsquo;s things that are words to you but not the default spell checker&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Common example: package names!&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;plotly&lt;/code&gt;, &lt;code&gt;streamlit&lt;/code&gt;, &lt;code&gt;psutil&lt;/code&gt;, etc etc&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;You can easily add these to your vim config by hitting &lt;code&gt;zw&lt;/code&gt; ontop of the word!&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Vim-Auto-Space</title>
    <id>https://pype.dev/vim-auto-space/</id>
    <updated>2022-03-04T00:00:00Z</updated>
    <published>2022-03-04T00:00:00Z</published>
    <link href="https://pype.dev/vim-auto-space/" rel="alternate" type="text/html"></link>
    <summary type="text">I ran into an issue where I had some copy-pasta markdown tables in a docstring but the generator I used to make the table gave me tabs instead of spaces in...</summary>
    <content type="html">&lt;p&gt;I ran into an issue where I had some copy-pasta markdown tables in a docstring but the generator I used to make the table gave me tabs instead of spaces in odd places which caused &lt;code&gt;black&lt;/code&gt; to throw a fit.&#xA;Instead of manually changing all tabs to spaes, or trying some goofy &lt;code&gt;:%s/&amp;lt;magic tab character&amp;gt;/&amp;lt;%20 maybe?&amp;gt;/g&lt;/code&gt; I learned that Vim has my back&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;:retab&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
</feed>