<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arnold Chand</title>
    <description>The latest articles on DEV Community by Arnold Chand (@creativenull).</description>
    <link>https://dev.to/creativenull</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F134682%2F8b05b276-1d97-48bc-adf9-76a982695803.jpg</url>
      <title>DEV Community: Arnold Chand</title>
      <link>https://dev.to/creativenull</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/creativenull"/>
    <language>en</language>
    <item>
      <title>Installing neovim nightly alongside stable</title>
      <dc:creator>Arnold Chand</dc:creator>
      <pubDate>Mon, 07 Dec 2020 17:58:44 +0000</pubDate>
      <link>https://dev.to/creativenull/installing-neovim-nightly-alongside-stable-10d0</link>
      <guid>https://dev.to/creativenull/installing-neovim-nightly-alongside-stable-10d0</guid>
      <description>&lt;p&gt;Nvim v0.5 is the development branch of neovim and has been in constant feature update. Some of the major features include (but still in development):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;built-in Language Server Client (aka nvim-lsp)&lt;/li&gt;
&lt;li&gt;treesitter (used for syntax highlighting - and a bit of syntax check, but a topic for another day perhaps)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;init.lua&lt;/code&gt; as a substitute config file instead of &lt;code&gt;init.vim&lt;/code&gt; (Also coming soon in a future post)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can have a &lt;a href="https://neovim.io/roadmap/"&gt;look at their roadmap here&lt;/a&gt; to see what else is in development.&lt;/p&gt;

&lt;p&gt;But today, my focus will be on installing nightly (or v0.5, but for this post I will refer to as nightly) alongside your stable version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why two different versions and not just update to nightly?
&lt;/h2&gt;

&lt;p&gt;It's true you can just update to the nightly version and it will still work with your current config and go about your day. But, for someone like me who uses vim at work, I want to keep a stable version separate to the nightly where I may encounter breaking changes.&lt;/p&gt;

&lt;p&gt;I also want to try out the features from nightly and mess around but rather keep those separate to my stable config.&lt;/p&gt;

&lt;p&gt;If you also use vim at work but also want to experiment with the new features from nightly, then read on. Else you would most likely not care about the majority of this post, but feel free to read 🙂.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Couple resources and tools you may need before we get started will be listed here:&lt;/p&gt;

&lt;p&gt;Tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com"&gt;git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/neovim/neovim/wiki/Building-Neovim#build-prerequisites"&gt;Build prerequisites from neovim wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will also make heavy use of the Build section of the neovim wiki resource:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/neovim/neovim/wiki/Building-Neovim"&gt;Building Neovim&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Clone and Build
&lt;/h2&gt;

&lt;p&gt;Once you have git and the build pre-requisites installed, we can continue and clone the neovim repo into your machine. These instructions are mostly for linux but they are similar for a Mac and for Windows (if you use WSL). My default directory will be the &lt;code&gt;$HOME&lt;/code&gt; directory. So let's clone and &lt;code&gt;cd&lt;/code&gt; into it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/neovim/neovim.git &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim
&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next we compile the source, let's keep it a &lt;code&gt;Release&lt;/code&gt; type because our focus is using neovim and not developing it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;make CMAKE_BUILD_TYPE=Release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depending on your machine, this may take anywhere from 30 seconds to an hour or two. But eventually, if all goes well you should get no error messages and be able to see the executable at &lt;code&gt;build/bin&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;Now we can also install the binary in a location of choice (by running &lt;code&gt;make CMAKE_INSTALL_PREFIX=/path/to/location install&lt;/code&gt;, but I would prefer to just leave the binary at &lt;code&gt;build/bin/nvim&lt;/code&gt; and work from there. The downside is that we will need to provide the runtime explicitly, so we run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VIMRUNTIME=runtime ./build/bin/nvim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations! You got vim successfully compiled and running 🎉🥳🎉&lt;/p&gt;

&lt;p&gt;At this point you are done. But writing the above line every time you want to open nightly is quite a hassle, especially when you want to open from your project directory but the runtime directory is not relative to your project, so you will have to explicitly include the full path to the runtime and the neovim binary.&lt;/p&gt;

&lt;p&gt;A better way, would be to create a script file and call that instead. So let's make one!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.local/bin/nv.sh
&lt;span class="nb"&gt;chmod &lt;/span&gt;u+x &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.local/bin/nv.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;A quick note, it is convention that when making script file you create it with the &lt;code&gt;.sh&lt;/code&gt; extension, but you can omit that and just use the script name (like &lt;code&gt;nv&lt;/code&gt; instead of &lt;code&gt;nv.sh&lt;/code&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now inside &lt;code&gt;nv.sh&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# nv.sh&lt;/span&gt;
&lt;span class="nv"&gt;VIMRUNTIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/runtime &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/build/bin/nvim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Assuming that &lt;code&gt;$HOME/.local/bin&lt;/code&gt; is in your &lt;code&gt;$PATH&lt;/code&gt; environment, calling &lt;code&gt;nv.sh&lt;/code&gt; anywhere from your terminal should open neovim nightly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Config
&lt;/h2&gt;

&lt;p&gt;Add your config at &lt;code&gt;$HOME/.config/nvim/init.vim&lt;/code&gt; and have two separate configs for stable and nightly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" init.vim&lt;/span&gt;

&lt;span class="k"&gt;let&lt;/span&gt; $NVIM_CONFIG_DIR &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;expand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'$HOME/.config/nvim'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;has&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'nvim-0.5'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c"&gt;" nightly config&lt;/span&gt;
    &lt;span class="k"&gt;source&lt;/span&gt; $NVIM_CONFIG_DIR/nightly&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;vim&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="c"&gt;" stable config&lt;/span&gt;
    &lt;span class="k"&gt;source&lt;/span&gt; $NVIM_CONFIG_DIR/stable&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;vim&lt;/span&gt;
&lt;span class="k"&gt;endif&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you can have a &lt;code&gt;stable.vim&lt;/code&gt; for your stable config and then &lt;code&gt;nightly.vim&lt;/code&gt; for your nightly config.&lt;/p&gt;




&lt;p&gt;However, we can take this a step further and separate them in different directories. So you can have a stable config at &lt;code&gt;$HOME/.config/nvim&lt;/code&gt; and have your nightly config at &lt;code&gt;$HOME/.config/nvim-nightly&lt;/code&gt;. While this works, there are a couple more tweaks you will have to do in order for it to work properly. If you are interested in this method then I would recommend you to read the next section, otherwise just jump to updating neovim nightly further below 😜.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separate directory for stable and nightly (OPTIONAL)
&lt;/h3&gt;

&lt;p&gt;Now everything from here onward is optional for you to do. The reason why I did this is because I had issues with loading remote plugins (plugins with &lt;code&gt;rplugin&lt;/code&gt; directory) where it would over-write the &lt;code&gt;rplugin.vim&lt;/code&gt; manifest, if I switch between stable and nightly. This was due to me having different plugins for the two versions. &lt;/p&gt;

&lt;p&gt;The solution was to keep them in separate directory so there are no namespace clashes. So we should have the following directory structure for stable (&lt;code&gt;nvim&lt;/code&gt;) and nightly (&lt;code&gt;nvim-nightly&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$HOME/.config/
├── nvim
│   └── init.vim
├── nvim-nightly
│   └── init.vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same for the local directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$HOME/.local/share/
├── nvim
│   ├── site/
│   └── rplugin.vim
├── nvim-nightly
│   ├── site/
│   └── rplugin.vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Update &lt;code&gt;nv.sh&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Since &lt;code&gt;nvim/init.vim&lt;/code&gt; is the file neovim looks for as the default config, we need to explicitly mention the config file we want loaded for nightly. And we also want to specify where remote plugins manifest will be placed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# nv.sh&lt;/span&gt;
&lt;span class="nv"&gt;NVIM_RPLUGIN_MANIFEST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/.local/share/nvim-nightly/rplugin.vim &lt;span class="nv"&gt;VIMRUNTIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/runtime &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/build/bin/nvim &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$@&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.config/nvim-nightly/init.vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Edit: Added the &lt;code&gt;$@&lt;/code&gt; after the nvim executable. I've noticed that if you pass a file name to the script it will not load it. We want to be able pass down any number of arguments from the script to the executable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Add custom paths to &lt;code&gt;runtimepath&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Finally, we need to specify our config and local directory to be part of the &lt;code&gt;runtimepath&lt;/code&gt;, else it will end up not picking plugins installed via a plugin manager. So within the config file, we want to remove all instances where we don't want &lt;code&gt;runtimepath&lt;/code&gt; to search for and explicitly add our own custom path.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" $HOME/.config/nvim-nightly/init.vim&lt;/span&gt;

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim/after
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim/&lt;/span&gt;site
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim/&lt;/span&gt;site/after

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;+=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim&lt;span class="p"&gt;-&lt;/span&gt;nightly/after
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;^&lt;span class="p"&gt;=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim&lt;span class="p"&gt;-&lt;/span&gt;nightly
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;&lt;span class="p"&gt;+=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim-nightly/&lt;/span&gt;site/after
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;runtimepath&lt;/span&gt;^&lt;span class="p"&gt;=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim-nightly/&lt;/span&gt;site
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Add custom paths to &lt;code&gt;packpath&lt;/code&gt; if using minpac or similar plugin manager
&lt;/h4&gt;

&lt;p&gt;If you are using the native package handler, or using a plugin manager that utilizes the build-in package handling in vim like minpac. Then you may have to specify the custom path to your local directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" $HOME/.config/nvim-nightly/init.vim&lt;/span&gt;

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim/after
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim/&lt;/span&gt;site
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;-=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim/&lt;/span&gt;site/after

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;^&lt;span class="p"&gt;=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim&lt;span class="p"&gt;-&lt;/span&gt;nightly
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;+=~&lt;/span&gt;&lt;span class="sr"&gt;/.config/&lt;/span&gt;nvim&lt;span class="p"&gt;-&lt;/span&gt;nightly/after
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;^&lt;span class="p"&gt;=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim-nightly/&lt;/span&gt;site
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;packpath&lt;/span&gt;&lt;span class="p"&gt;+=~&lt;/span&gt;&lt;span class="sr"&gt;/.local/&lt;/span&gt;share&lt;span class="sr"&gt;/nvim-nightly/&lt;/span&gt;site/after
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Update neovim nightly
&lt;/h2&gt;

&lt;p&gt;To update neovim, it's as easy as pulling all the latest changes to your local machine and doing a clean compile.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim
git pull
make distclean &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; make &lt;span class="nv"&gt;CMAKE_BUILD_TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope this guide helps you in setting up neovim nightly alongside the stable version, or at least to helps me reference in-case I forget. It is one of many ways of getting them installed in a machine, but this is the way I preferred on getting it installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;E149: Sorry, no help for ...&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;If you have problems accessing docs, since it was compiled from source you will have to manually generate docs. Fortunately, this can be done just once by running the vim ex command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;helptags&lt;/span&gt; $VIMRUNTIME/doc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;$MYVIMRC&lt;/code&gt; is empty
&lt;/h3&gt;

&lt;p&gt;Some might use &lt;code&gt;:e $MYVIMRC&lt;/code&gt; to open their config file, and because we are using different directory for configs, you may have to include &lt;code&gt;MYVIMRC&lt;/code&gt; variable in &lt;code&gt;nv.sh&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# nv.sh&lt;/span&gt;
&lt;span class="nv"&gt;MYVIMRC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/.config/nvim-nightly/init.vim &lt;span class="nv"&gt;NVIM_RPLUGIN_MANIFEST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/.local/share/nvim-nightly/rplugin.vim &lt;span class="nv"&gt;VIMRUNTIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/runtime &lt;span class="nv"&gt;$HOME&lt;/span&gt;/neovim/build/bin/nvim &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$@&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.config/nvim-nightly/init.vim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  packer.nvim uses default nvim directory and not the separate &lt;code&gt;~/.config/nvim-nightly&lt;/code&gt; and &lt;code&gt;~/.local/share/nvim-nightly&lt;/code&gt; directory
&lt;/h3&gt;

&lt;p&gt;If you followed the guide that separates the directories and use packer plugin manager for nvim nightly then you may want to add &lt;code&gt;packer.init()&lt;/code&gt; before your &lt;code&gt;packer.startup()&lt;/code&gt; and specify the &lt;code&gt;nvim-nightly&lt;/code&gt; directory instead of the default directory. &lt;a href="https://github.com/creativenull/dotfiles/blob/16fc15395f0598e4f84906e05cd58e7d5fc991f2/.config/nvim-nightly/lua/creativenull/plugins/init.lua#L13-L19"&gt;You can use my plugins file as an example&lt;/a&gt;. Below is a snippet of it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight lua"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'packer'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;package_root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;os.getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'HOME'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;..&lt;/span&gt; &lt;span class="s1"&gt;'/.local/share/nvim-nightly/site/pack'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;compile_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;os.getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'HOME'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;..&lt;/span&gt; &lt;span class="s1"&gt;'/.config/nvim-nightly/plugin/packer_compiled.vim'&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'packer'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;startup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;use&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="c1"&gt;-- plugins&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>vim</category>
      <category>neovim</category>
      <category>productivity</category>
      <category>linux</category>
    </item>
    <item>
      <title>CamelCase, kebab-case or snake_case folders?</title>
      <dc:creator>Arnold Chand</dc:creator>
      <pubDate>Wed, 24 Jun 2020 20:56:21 +0000</pubDate>
      <link>https://dev.to/creativenull/camelcase-kebab-case-or-snakecase-folders-242h</link>
      <guid>https://dev.to/creativenull/camelcase-kebab-case-or-snakecase-folders-242h</guid>
      <description>&lt;p&gt;Which type of casing do you use when naming a folder in your project? &lt;code&gt;CamelCase&lt;/code&gt;, &lt;code&gt;kebab-case&lt;/code&gt; or &lt;code&gt;snake_case&lt;/code&gt;, or all mixed and mashed together 😂?&lt;/p&gt;

&lt;p&gt;Of course, this would also depend on which programming language you use, or style guide. But what do &lt;strong&gt;YOU&lt;/strong&gt; really feel like would be the best naming case for folder/directories?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>How do you name your webpack/parcel/etc aliases?</title>
      <dc:creator>Arnold Chand</dc:creator>
      <pubDate>Sun, 17 May 2020 00:16:22 +0000</pubDate>
      <link>https://dev.to/creativenull/how-do-you-name-your-webpack-parcel-etc-aliases-10mf</link>
      <guid>https://dev.to/creativenull/how-do-you-name-your-webpack-parcel-etc-aliases-10mf</guid>
      <description>&lt;p&gt;Bundlers such as webpack have an option to replace your relative paths with aliases. I've seen some articles and tutorial where they use either &lt;code&gt;@&lt;/code&gt; prefix or capitalizing the first letter of the relative path, like &lt;code&gt;App/&lt;/code&gt; or &lt;code&gt;Components/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For me I started using &lt;code&gt;@&lt;/code&gt; prefixes at the beginning but then started to experiment around with &lt;code&gt;#&lt;/code&gt; prefixes instead for my projects.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// webpack config&lt;/span&gt;
&lt;span class="nx"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;alias&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I'm interested to know what you use as your webpack (or any other bundler) aliases? Or if you don't use them at all?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>javascript</category>
      <category>webpack</category>
    </item>
  </channel>
</rss>
