Lumos said:
I've got to thank you! My courses this year seem to have a strict no-tabs-only-spaces policy on the code files I submit to them, and if I hadn't opened vim through my SSH connection to check it out, after reading about it in your post, I would've still had the tabs left.
That said, I'm rather partial to Notepad++ or gedit, if I'm forced to use a linux terminal. The uni tried to force me to use emacs, but gedit is much more intelligible. Seriously, I got no reason to use bull**** key-commands when I'm in a graphical environment, and if I'm making changes through an SSH terminal, I'm quite happy to stick to nano.
Also, I prefer Mercurial over git. (Though I've never used git in my life.)
But different software choices aside, thanks again for mentioning vim. I would've been deducted some amount of points without it.
Well the only reason why I use Git is because of GitHub. It allows me to easily contribute to most Open Source projects as they are usually hosted on GitHub, so I just fork a repository and then do my thing, send a pull request and wait for the magic to happen. And I was really never exposed to any other VCS because I'm quite pleased with Git. Its learning curve is a bit steep, but once you get the hang of it, it's all good. I now compulsively initialize new repos every time I start working on a project just in case I want to turn it into something bigger, then I can create a remote repo on GitHub and push all of my commits there for all the people to see and contribute.
Anyway, regarding Vim. I used to be a strict Visual Studio/Notepad++/Sublime Text kind of guy, but ever since I installed my linux server (that I used as a dev machine; I installed in a virtual machine) I started using Vim more and more. I just found it to be a much easier and more effective way of editing text. It has strict modes that work in different scenarios (Insert Mode, Visual Mode, Normal mode etc.) from which you do very specific things. In normal mode you'd browse through your text / code, in insert mode you edit your text and in visual you yank, cut and paste code around. But yeah, I just love Vim. There are just so many shortcuts to learn, so many neat things that you can do. Like, I can jump to N-th line of code, delete M-th column and jump back to location from which I executed those commands with just 3 letters. I'm the type of guy that prefers using keyboard to mouse. Even when I browset web I do everything through keyboard. I navigate through pages using Page Up/Down, Ctrl+L, Ctrl+T, Tab, Shift+Tab etc. Even in Windows I prefer using keyboard shortcuts the mouse. It just saves time so if you're like me, I think you'd enjoy Vim a hell of a lot. Keep in my mind, :help __comand_name__ is your friend if you decide to give it a go.