<?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>Forem: Konstantin Epishev</title>
    <description>The latest articles on Forem by Konstantin Epishev (@epszaw).</description>
    <link>https://forem.com/epszaw</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%2F167787%2F8e1aadbe-8af0-4524-b69b-6083d60668f9.jpeg</url>
      <title>Forem: Konstantin Epishev</title>
      <link>https://forem.com/epszaw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/epszaw"/>
    <language>en</language>
    <item>
      <title>vim + space = ️</title>
      <dc:creator>Konstantin Epishev</dc:creator>
      <pubDate>Sat, 27 Feb 2021 12:18:21 +0000</pubDate>
      <link>https://forem.com/epszaw/vim-space-48bp</link>
      <guid>https://forem.com/epszaw/vim-space-48bp</guid>
      <description>&lt;p&gt;About one year ago I started using &lt;code&gt;vim&lt;/code&gt; as primary text editor in my job. Sometimes I think about &lt;code&gt;emacs&lt;/code&gt; and its distributions with mnemonic keybindings focused on space-key usage. It's very elegant and easy to remember &lt;code&gt;&amp;lt;space&amp;gt;-f-g&lt;/code&gt; to global find, or &lt;code&gt;&amp;lt;space&amp;gt;-g-s&lt;/code&gt; to reveal &lt;code&gt;git&lt;/code&gt; status. As &lt;code&gt;leader&lt;/code&gt; key it allows to use some plugins with pleasure.&lt;/p&gt;

&lt;p&gt;For example &lt;a href="https://github.com/tpope/vim-surround"&gt;vim-surround&lt;/a&gt;. Instead default &lt;code&gt;\S&lt;/code&gt; you can easily press &lt;code&gt;&amp;lt;space&amp;gt;S&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In that way &lt;code&gt;space&lt;/code&gt; is better for your health, because the thumb is the strongest finger on our hand. When you're using pinky finger to press &lt;code&gt;capslock&lt;/code&gt; or &lt;code&gt;\&lt;/code&gt; as &lt;code&gt;leader&lt;/code&gt; key it not so comfortable and your hand getting tired much faster.&lt;/p&gt;




&lt;p&gt;About one month ago I've discovered, that it's possible to similarly use &lt;code&gt;space&lt;/code&gt; in &lt;code&gt;vim&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I know about &lt;a href="https://spacevim.org/"&gt;spacevim&lt;/a&gt;, but it's so complicated and I like to build my editor by myself, keeping only features what I really need.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's try it!&lt;/p&gt;

&lt;h3&gt;
  
  
  Add &lt;code&gt;vim-which-key&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/liuchengxu/vim-which-key"&gt;&lt;code&gt;vim-which-key&lt;/code&gt;&lt;/a&gt; allows to see all your keybindings at any time. It looks absolutely like the same feature in &lt;code&gt;emacs&lt;/code&gt; (and in &lt;code&gt;spacevim&lt;/code&gt; too).&lt;/p&gt;

&lt;h3&gt;
  
  
  Initial configuration
&lt;/h3&gt;

&lt;p&gt;Add a few lines to &lt;code&gt;init.vim&lt;/code&gt;:&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="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:which_key_map&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;  &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="c"&gt;" needs to call `whichkey` on `whitespace` press&lt;/span&gt;
&lt;span class="k"&gt;call&lt;/span&gt; which_key#register&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&amp;lt;Space&amp;gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"g:which_key_map"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c"&gt;" reassign default space behaviour in normal mode&lt;/span&gt;
nmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;SPACE&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;" map fuzzy search on double space&lt;/span&gt;
&lt;span class="nb"&gt;noremap&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;SPACE&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;ProjectFiles&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:which_key_map&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'SPACE'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'project-files'&lt;/span&gt;
&lt;span class="c"&gt;" open `whichkey` after single space press and small wait&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;silent&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;      &lt;span class="p"&gt;:&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;u&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;WhichKey &lt;span class="s1"&gt;'&amp;lt;Space&amp;gt;'&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example bindings for &lt;code&gt;git&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Add some useful bindings for &lt;a href="https://github.com/tpope/vim-fugitive"&gt;vim-fugitive&lt;/a&gt;:&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="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:which_key_map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;g&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'+git'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;noremap&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;gs &lt;span class="p"&gt;:&lt;/span&gt;G&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:which_key_map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;s &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'git-status'&lt;/span&gt;
&lt;span class="nb"&gt;noremap&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;gc &lt;span class="p"&gt;:&lt;/span&gt;Gcommit&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:which_key_map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'git-commit'&lt;/span&gt;
&lt;span class="nb"&gt;noremap&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;gd&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;Gdiffsplit&lt;span class="p"&gt;!&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These bindings can be easily remembered as &lt;code&gt;git - status&lt;/code&gt; or &lt;code&gt;git - commit&lt;/code&gt;.&lt;/p&gt;




&lt;p&gt;That's all! If you know other useful hacks for &lt;code&gt;vim&lt;/code&gt; let's discuss it! ✨&lt;/p&gt;

</description>
      <category>vim</category>
      <category>productivity</category>
      <category>health</category>
    </item>
    <item>
      <title>How I just start using vim</title>
      <dc:creator>Konstantin Epishev</dc:creator>
      <pubDate>Thu, 26 Dec 2019 11:11:26 +0000</pubDate>
      <link>https://forem.com/epszaw/how-i-just-start-using-vim-300a</link>
      <guid>https://forem.com/epszaw/how-i-just-start-using-vim-300a</guid>
      <description>&lt;p&gt;Some years ago vim was for me an unreachable text editor for "real hackers" and I really had not any ideas how to use it and how it can be useful in the daily development.&lt;/p&gt;

&lt;p&gt;But now I can't imagine other editor, because I have finally tame vim!&lt;/p&gt;

&lt;p&gt;There are some steps which I have done before start using vim efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use "all fingers"
&lt;/h3&gt;

&lt;p&gt;Before &lt;code&gt;vim&lt;/code&gt; I had used only 4 or 5 fingers in the "blind mode" and when I have started practicing with ten-fingers input – text navigation with arrows became just uncomfortable for me.&lt;/p&gt;

&lt;p&gt;It was key moment, when I began to think about migration to &lt;code&gt;vim&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;How I have started using all fingers? Just start do that. I have used some keyboard trainers, but only for adapt to keyboard layout. Type with all fingers, look at keyboard when you need that, but just try to use all fingers on right positions.&lt;/p&gt;

&lt;p&gt;It took ~1 month for me before I stopped feeling discomfort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complete &lt;code&gt;vimtutor&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc3jaswve7101e67zmzm6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc3jaswve7101e67zmzm6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;vimtutor&lt;/code&gt; is a educational program with basics of &lt;code&gt;vim&lt;/code&gt; usage. Before it I had not any knowledge about navigation except &lt;code&gt;h&lt;/code&gt;, &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;k&lt;/code&gt;, &lt;code&gt;l&lt;/code&gt; keys.&lt;/p&gt;

&lt;p&gt;I highly recommend to complete &lt;code&gt;vimtutor&lt;/code&gt; at the beginning, because it can give you a strong basement of vim usage in the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disable arrows keys
&lt;/h3&gt;

&lt;p&gt;It is very important because I had a huge temptation to start using arrows in &lt;code&gt;vim&lt;/code&gt;. Just disable them for acceleration of adaptation to the new navigation way.&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;" Disable arrows in visual and normal modes&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Up&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Down&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Left&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Right&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;" Disable arrows in input mode&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Up&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Down&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Left&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Right&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Nop&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Use existing config
&lt;/h3&gt;

&lt;p&gt;The first thing, which I knew about &lt;code&gt;vim&lt;/code&gt; was possibility to customize editor for your own purposes.&lt;/p&gt;

&lt;p&gt;I had already installed NeoVim and &lt;a href="https://github.com/junegunn/vim-plug" rel="noopener noreferrer"&gt;vim-plug&lt;/a&gt; and with existing configs I have tried to reproduce my favorite features from past text editors in vim.&lt;/p&gt;

&lt;p&gt;As example I took configuration of one local engineer &lt;a href="https://github.com/daynin/dotfiles/blob/master/configs/init.vim" rel="noopener noreferrer"&gt;Sergey Golovin&lt;/a&gt;. It includes all basic features which can be helpful at the beginning, because in future you will configure editor for yourself.&lt;/p&gt;

&lt;p&gt;You also can try to use &lt;a href="https://github.com/lamartire/dotfiles/blob/master/configs/init.vim" rel="noopener noreferrer"&gt;my vim configuration&lt;/a&gt;, but I'm periodically changing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bring features from your favorite editor
&lt;/h3&gt;

&lt;p&gt;So, I had a lot of troubles with understanding buffers, search and replace operations, navigation between files and at the first two weeks I had a strong desire to start using Sublime Text again.&lt;/p&gt;

&lt;p&gt;But I have discovered tabs, some plugins for reproducing favorite features like fuzzy search or navigation between opened files.&lt;/p&gt;

&lt;p&gt;There are some &lt;code&gt;vim&lt;/code&gt; plugins "mapped by features":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/junegunn/fzf.vim" rel="noopener noreferrer"&gt;fzf.vim&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fg5bcg9znnfvof5cq8ywe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fg5bcg9znnfvof5cq8ywe.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;fzf.vim&lt;/code&gt; provides project-wide fuzzy search, search between active buffers and etc. It can be customized.&lt;/p&gt;

&lt;p&gt;If you want to exclude all files from &lt;code&gt;.gitignore&lt;/code&gt; you should add to your &lt;code&gt;init.vim&lt;/code&gt; following line:&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="k"&gt;let&lt;/span&gt; $FZF_DEFAULT_COMMAND &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'ag --hidden --ignore .git -g ""'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use other search utility, like &lt;a href="https://github.com/BurntSushi/ripgrep" rel="noopener noreferrer"&gt;ripgrep&lt;/a&gt; instead &lt;code&gt;ag&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kien/ctrlp.vim" rel="noopener noreferrer"&gt;ctrlp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This plugin provides features similar to &lt;code&gt;fzf.vim&lt;/code&gt;. I have used it at the first time but then have changed it to &lt;code&gt;fzf.vim&lt;/code&gt; plugin.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/dyng/ctrlsf.vim" rel="noopener noreferrer"&gt;ctrlsf.vim&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F69gyqfqi5xoi6lykri0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F69gyqfqi5xoi6lykri0s.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I really like search in Sublime Text and &lt;code&gt;ctrlsf.vim&lt;/code&gt; fully reproduce it in vim.&lt;/p&gt;

&lt;p&gt;You can find something in project and change something right in results. It is really awesome, useful and visual.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/scrooloose/nerdtree" rel="noopener noreferrer"&gt;nerdtree&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpdhn7fvsr93a48nsvfx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpdhn7fvsr93a48nsvfx6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nerdtree&lt;/code&gt; provides visual navigation between project files and basic filesystem manipulations (create, delete, rename, move, etc.).&lt;/p&gt;

&lt;p&gt;I'm using it with &lt;a href="https://github.com/unkiwii/vim-nerdtree-sync" rel="noopener noreferrer"&gt;vim-nerdtree-sync&lt;/a&gt;, because I want to see active file in project tree.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/neoclide/coc.nvim" rel="noopener noreferrer"&gt;coc.vim&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdhgi1z4vnqrkn73uouot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdhgi1z4vnqrkn73uouot.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;coc.vim&lt;/code&gt; provides autocomplete engine like VS Code to &lt;code&gt;vim&lt;/code&gt;. It just works.&lt;/p&gt;

&lt;p&gt;Before using you should install &lt;code&gt;neovim&lt;/code&gt; npm package globally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; neovim

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is using plugins system. For example, if you want to use &lt;code&gt;typescript&lt;/code&gt; or &lt;code&gt;javascript&lt;/code&gt; autocompletion, you should run &lt;code&gt;:CocInstall coc-tsserver&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I'm using &lt;code&gt;tab&lt;/code&gt; and &lt;code&gt;shift+tab&lt;/code&gt; for navigation between completion items:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;inoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;pumvisible&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; ? &lt;span class="s2"&gt;"\&amp;lt;c-n&amp;gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"\&amp;lt;tab&amp;gt;"&lt;/span&gt;
inoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;S&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;pumvisible&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; ? &lt;span class="s2"&gt;"\&amp;lt;c-p&amp;gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"\&amp;lt;S-tab&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Plugins which I have described above are very useful for daily tasks, but you can find other plugins on &lt;a href="https://vimawesome.com/" rel="noopener noreferrer"&gt;vimawesome&lt;/a&gt; or write your own with vim script (it is not so difficult).&lt;/p&gt;

&lt;h3&gt;
  
  
  Survive the first two weeks
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6zzufe2a444t0fi6himh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6zzufe2a444t0fi6himh.jpg" alt="Shot from "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is the most difficult step. Before that try to make basic &lt;code&gt;vim&lt;/code&gt; configuration with all required features and then use that. If you meet with some problems – make note about that and then try to solve with plugin or just on configuration level.&lt;/p&gt;

&lt;p&gt;If you are not ready to use &lt;code&gt;vim&lt;/code&gt; as main editor – install keymap for your current editor and accustom with navigation and other features. It is much simpler for beginners.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I have met with &lt;code&gt;vim&lt;/code&gt; a lot of years ago and have thought that it is very difficult all this time, but it is not difficult, it is just different and if you want to start use &lt;code&gt;vim&lt;/code&gt; you can do that easily in few weeks!&lt;/p&gt;

&lt;p&gt;So, my next target is &lt;a href="http://spacemacs.org/" rel="noopener noreferrer"&gt;spacemacs&lt;/a&gt;. When I want to start new migration? I don't know, but when I will do that – I will tell about that experience! 🦄&lt;/p&gt;

</description>
      <category>vim</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
