Id like to start using vim for quickly creating files (note taking, scratch files) and making small/quick changes to existing python scripts

Whats the best way to get Vim installed on Windows? Would it be to install gVim? Or to install Vim through Bash on Windows?

(I currently have Bash on Windows setup and access it through ConEmu but I rarely use it)

Do the gVim and Bash on Windows approaches have any significant differences or are there disadvantages to either method?

marked as duplicate by Tumbler41, jamessan, Martin Tournoij Apr 4 '17 at 13:31

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • gVim works great for me. – Tumbler41 Mar 31 '17 at 13:17

I use both gvim for Windows and Cygwin's terminal vim. I have them configured the same, so in most cases it doesn't matter which one I use. However, they handle file names differently. Gvim for Windows understands Windows path names while Cygwin's vim understands Cygwin path names. If you rarely use bash, then I assume you don't care about having a Unix-like environment and I would recommend that you use Windows gvim.

One nice advantage to using Windows gvim is that the installer can add a context menu "Edit with Vim" entry, which lets you easily choose to edit a file with gvim rather than opening it with the default application.


Go the bash route, even if there are some growing pains. You'll thank yourself later. vim and bash are like hand and glove. You will only want to use more of each the more you use one or the other; the same can be said for anything built on the Unix tradition, and they all speak the same language and follow the same forms. Besides, it's great to execute commands from the shell and read the input right into a buffer!

Addendum: Below are some additional comments I thought I'd follow up with as some encouragement for OP, and anyone in a similar position.

What's more, you can do this sort of thing with most any combination of traditional Unix (i.e., command-line) tools. You can't chain output from one program (together as input) to another in a GUI, but this is done all the time on the command-line. If you're not sure what this means, don't worry, it will become apparent later. But at least now it's got you curious; curiosity may have killed the cat, but it's taken man to the stars.

Finally, using gVim will keep you trapped in the "windows" paradigm. I'm not trying to be derogatory, but speaking from personal experience: this paradigm of everything in its own window needs to be overcome (it's going to take some getting used to, and you will initially resist); it's just not as productive. bash (i.e., any command-line interpreter) is your friend, and just about any of the most powerful tools you could ever dream of are all free, all have been around probably longer than you've been alive, all "live" on the command-line, and are likely installed with any basic Unix-like distribution (and if they aren't installed by default, they aren't that hard to get--in your case, probably a sudo apt-get away). Don't shy away from them because they take some getting used to; keep digging (there's tons of information out there--if you're curious enough to ask this question, you'll be curious enough to continue your search).

Honestly, I think gVim only exists because some people loved vim so much that they wanted to make it available to "noobs" who would otherwise resort to a GUI-based editor, and they thought this might be a gateway for them to go "full-vim". But, it's not. It's still going to trap the user in the "windows" mindset. All other GUI-based editors exist only as cheap imitations to the real thing (which is vim or emacs) and/or to sell software, particularly those masquerading as IDEs; at least a basic text editor serves the purpose of providing a tool for the novice or someone not involved with any kind of programming.

I've only been using vim for about a month, and I've only been basically aware of bash and the rest of the Unix-like suite for maybe 2 years. I knew the very basics beforehand, such as how to write a file and quit the editor, and the absolute basics of navigation (hjkl, and w, though I was still in the habit of resorting to my cursor/arrow keys). Finally, I was doing enough programming that I was already getting sick of the limitations I was experiencing with editors like Atom and Sublime (for example, multi-line editing). Of course I wanted more power and flexibility, but most importantly, I wanted to break this vicious habit of relying on these modern (and not always portable) applications before it got any worse. The more time I wasted learning how to customize and be more productive with these frauds, the more I'd become completely dependent on them. I've fallen into this trap before: the app-trap.

I was determined to start using vim (or emacs). So, I did what anyone else would do these days: as a consumer, I watched videos (on YouTube), expecting some magic to happen; that, by osmosis, learning would take place; that by in-action I'd somehow change and become more productive. But then a funny thing happened: I saw some pretty cool tricks on display. I saw a solution for how to edit multiple lines at once. I had to try this out myself ...and it worked! Of course, it's been there, right under my nose all along: vim!

I'm also a compulsive note-taker. So I went back through these videos, pausing at every new trick to try and determine the sequence of key-strokes used to achieve the desired result. Then, armed with this newfound wisdom, I'd take to my keyboard; I just had to try them out myself. I learned things I hadn't even thought possible--because I was still trapped in the "windows" mindset; for instance: I didn't know that the vim "language" (of commands, operators and motions) was basically a scripting language, that I could "talk" to my editor. This was truly profound ...and completely logical! Inevitable, even.

So, from that moment forward, I forced myself to start using vim, and I haven't regretted it one bit.

It didn't take long, maybe 2 days, before I was comfortable and already seeing an increase in productivity. Soon after, I was wondering how editing could be any other way? Now I recommend it to anyone that does more than a casual amount of typing. It really is amazing, and you won't regret taking the plunge. If I have to name one regret, it's that I now find myself trying to use vim commands in other contexts (e.g., trying to navigate text in the browser, or my instant messaging client using hjkl, $, 0, or w); it's very much muscle memory.

It's true: there is a learning curve. It takes some getting used to, to get into the habit of switching from NORMAL to INSERT (and VISUAL) mode(s) and to navigate with keys in the home-row, rather than reaching for your mouse or the cursor/arrow keys. But the learning curve isn't linear, it's more like exponential; once you overcome that initial phase, everything starts to build on top of what you already know, and you can start to "guess" or deduce how to do much more stuff that you never explicitly took the time to learn because everything follows a pattern. And this goes back to what I said initially, why it's good to use bash in conjunction with vim: because everything you learn with one or the other will help you improve with all the tools for anything Unix-based, including other programs/commands you have never even heard of or realized you can make great use of. There is a whole (amazing) world out there waiting for you to discover it, and it wants to make your life easier (it's the Unix way).

In any case, here is something I found really helpful: http://vim.spf13.com/ That's a popular vim "distribution" that has all the bells and whistles, more than you can dream of, or will make use of for probably years to come. I almost want to recommend against it, because it will retard your learning how to manage vim yourself (editing your vimrc file and installing plugins), but it's the lesser of two evils--it's got enough eye-candy to draw you in and keep you from defaulting to a GUI-based editor. Anyway, just stick with it, even when you find yourself a little frustrated (the same can be said for anything concerning computers and programming) and you'll eventually figure it out and be happy that you stuck it out, and be better off because you developed a little discipline and resourcefulness along the way.

Additionally, here's one of the videos that was a good source of inspiration: https://www.youtube.com/watch?v=MquaityA1SM It wasn't the best on relaying the keystrokes to the audience because IIRC he wasn't using a key-caster, but it was definitely an eye-opener, and the mentality he imparts is worth more than anything else. Keep it in mind when you find yourself wanting to resort to the familiar and easy (e.g., the cursor keys, mouse, or opening a bunch of windows or tabs); it's a good remedy for that. The rest of the videos or guides, you'll have to dig for on your own because that's how you learn! Good luck!


vim with Bash on Windows is great except you cannot use it to edit anything on a network share (local files only). Hopefully this will be fixed soon.

I prefer vim/tmux in a terminal so I did not try gVim.

vim for Windows did not work for me (I'd like to share my dotfiles with Linux/Mac).

The best option IMO is to use vim from cygwin in a cygwin terminal: the colors & plugins work and you can access network shares.

  • I use the same dotfiles for cygwin vim, linux vim, and windows gvim. You just need to set %HOME% in windows to your cygwin home and possibly (ntfs) symlink .vimfiles to _vimfiles? – StarWeaver Apr 1 '17 at 8:27
  • @StarWeaver thanks for the tip but I had problems with some plugins – laktak Apr 3 '17 at 7:27
  • Ah, i could see that, i only have maybe two plugins myself – StarWeaver Apr 3 '17 at 8:43

Not the answer you're looking for? Browse other questions tagged or ask your own question.