Over the last couple of years I’ve been increasingly interested and dedicated to two of my favorite hobbies: writing and programming. And while I make a living out of programming, writing has always been my secondary occupation.\n\nWhile it’s quite easy to find a good tool for writing code and a good tool for writing prose and technical writing, it is quite hard to find a tool that does it for both. Left alone being fast, lightweight and cross-platform.\n\nAnd then I found VIM!\n\n!(https://hackernoon.com/hn-images/1*OVSMUYjGFQg2_xlV5Q2S8w.png)\n\nVim is a modal text editor that’s ageless, cross-platform, super fast and highly customizable. Vim also has the benefit of benefiting those who spend their time learning and mastering it. Simple things like being able to pin-point customize it and not needing to use to use the mouse at all can boost your productivity by a million. In other words, Vim can **truly be** **your own text editor**.\n\nThere are thousands, if not millions of resources out there on using Vim to program. But what about writing? Today I present you some of the reasons I use it for writing, why you should consider it and also some tips on how to use it and improve it for writing.\n\nFirst of all, **why should you use Vim for writing?** We can look at it a couple of different ways, but at the end of the day, here are my top reasons for why Vim is a great tool for writing:\n\n* your hands can rest in a natural position, without the constant need to reach for the mouse or any other gadget.\n* Highly configurable. It enables you to build a workflow according to your own needs.\n* No proprietary lock-in, unlike most of the mainstream text editors out there.\n* Truly cross-platform. It is not only present on all of the operative systems I know of, it is also present in most servers I had to ssh into, and I have it running on my Ipad and on my [Android phone](https://www.sitepoint.com/android-elephpant-laravel-android-phone/).\n\nWhile all these reasons are very valid and encouraging, that is one thing that scares everyone when talking about switching to Vim.\n\nWhat about the learning curve?\n\nI always say that Vim has a steep learning curve when it comes to master it. But the basics are pretty easy to grasp and you can start being productive with it in something from 2 days to a week.\n\n**Learning Vim**\n\nThere are a lot of resources that can help you learn Vim. I always recommend the most basic and simple of all, but yet, one of the the best in my opinion. Just install Vim in whatever operative system you have and run “vimtutor” in the command line.\n\nVimtutor is an hands-on tutorial that will take you 45 minutes or an hour to complete. In my early days of learning Vim I used to do Vimtutor once or twice a week. And every time I did, it was amazing the amount of news things I learned. It is quite possible I would learn something new about Vim if I did it right now.\n\nMy challenge to you is to take the next hour and do the Vimtutor tutorial, then comeback to this article. I’m pretty sure you’ll enjoy it.\n\nNow that you have some basic grasps on the inner workings of Vim let’s get to writing!\n\n!(https://hackernoon.com/hn-images/1*jqpiys1tqk6DwAEfyGTZYA.jpeg)\n\nIn my point of view, there are a couple of basic functionalities a text editor must have so it can be used to write:\n\n* Spell Checking\n* Searching\n* Dictionary\n\nVim provides them all, and much more. But before we go into them, lets take a little time to do some very light configuration. This will set up us up with things like line numbering and search configurations. Open up you .vimrc file (you probably learned about it in vimtutor, .vimrc is the configuration file) and add the following:\n\n**set nocompatible** “Use vim like it’s 2017\n\n**set number** “Line numbering\n\n**set hlsearch** “Highlight search results\n\n**set incsearch** “Set incremental search\n\nThere are a lot more configuration options that can be added. If you have any doubts on what these lines do, just type “:h <command>” in normal mode. For example “:h incsearch”. This will bring up the help file. Help in Vim is really really good, so be sure to check it. Also check the following options: **formatoptions, textwidth, wrapmargin, foldcolumn** and **columns** as they might help you setting up your own workflow.\n\n**Search**\n\nWhen it comes to searching, it is explained in Vimtutor, but let’s quickly go through it right now. To search for a given word just go into normal mode and insert “**/**” followed by the word you wish to search for. For example “/medium” will search for all instances of “medium” in your text. You can then use “**p**” and “**n**” for the previous and next results. “**:noh**” will reset the search.\n\n**Spell Checking**\n\nSpell checking is also available on Vim and it is quite easy to use. Vim is set to en\\_us by default, so this is be the language it will check for if you don’t change it.You can use “**:h spell**” on normal mode to know more about spell checking. To start spell checking, just hop into normal mode and type “**:set spell**”. “**:set nospell**” will turn it off.\n\n**Thesaurus**\n\nAnother very useful function available on Vim is thesaurus. Thesaurus provides a way to define a file of alternate words. Like a synonym file. To allow thesaurus on Vim we have to go through 3 easy steps:\n\n* define a thesaurus file (these can be found on the internet or you can create your own).\n\nJust create a thesaurus.txt file and write the following inside:\n\n**important, valuable, substantial, significant**\n\nThis file is providing synonyms to the word “important”.\n\n* Specify the location of the thesaurus file on the .vimrc file.\n\nOpen you .vimrc file and write the following:\n\n**set+=thesaurus.txt**\n\n* Use it on vim with **<ctrl-x><ctrl-t>** in insert mode. This will make the list of synonyms popup.\n\nType the word “important” and then <ctrl-x><ctrl-t>.\n\n**Summing up**\n\nThese are just some of the writing oriented functionality that’s available out of the box on Vim. There are also a lot of plugins and customizations that can be done. Vim is an entire world to explore and each day you’ll learn something new while using it.\n\nIt is a great tool to have, even if you’re not someone who likes to try new and powerful things.\n\nThanks to Vim I’m writing faster and focusing on what’s important: my writing!\n\n!(https://hackernoon.com/hn-images/1*shZuz1HGmGoMGU-MYOo0mQ.jpeg)\n\nIf this sounds like it could help you, give it a try, and if you need any help drop me a line, I will be more than happy to help.