While there are some great tricks you can do with magic incantations in vim/emacs, you can do much more far more easily in notepad with a mouse/trackpad, and moving your hands away from the keyboard now and then is a Good Thing. Sure, i'll be downmodded by the command line junkies, and I'm sure there will be a million examples of awesomeness that you can only do with command lines and macros, and heck, maybe for some tiny number of people there's an advantage, but for the vast majority of the world's population sublime (or even just coders), textmate, bbedit, or whatever just crushes vim/emacs. Every vim/emacs junky who has tried to impress me with their awesomeness has done something either (a) I can do far easier in BBEdit, or (b) AppleScript (!) all while not having to memorize useless crap or edit config files.
But it's still worth learning to use one or more of these editors for when you need to.
This is just completely bogus. If you think about how large a terminal window is, on average, you have a grid of (e.g.) 100x50. That means you're trying to click one out of 5,000 symbols (for example the start of a word), which are very tiny. If you then think about this in terms of Fitts's law (http://en.wikipedia.org/wiki/Fitts's_law), you can see how clicking one tiny character with a tiny mouse on a large screen isn't the easiest thing.
Compare that to using your keyboard. For instance, if you're looking for the word "pipe", typing this in vim:
/pipe
Is obviously much faster. I don't see how anyone could believe that using a mouse is more efficient for such tasks.I'll stick to Sublime Text and Nano when I need some ssh terminal editing. :)
SublimeText isn't that old. Somehow you found out about it, learned its keyboard shortcuts, found out what plugins to install to do your work, and made it your editor.
That's how I learned Vim. I'll admit that I have a bias, and that learning to use something else would be harder.
But here's the thing - the Vim knowledge I have can translate to Visual Studio with a plugin, to XCode with a plugin, and to Eclipse with a plugin. Netbeans, RubyMine, and Webstorm have a Vim plugin as well.
So does SublimeText.
SublimeText's knowledge transfers to the next paid version of SublimeText.
Add on to that its awful configuration language and the fact that it's not really usable out of the box unlike Sublime Text, it's easy to see why some people consider it unmodern and, for them, inferior.
First, Vim emulation widgets vary a great deal in quality, supporting different, disjoint subsets of Vim functionality. Just as an example, ideaVim doesn't support Ctrl-W for navigating between panes. The deeper your knowledge of Vim, the more diminishing returns you get.
Second, Sublime Text's Vintage mode supports enough of my Vim workflow that it's actually made me faster with Vim and other Vim emulation widgets. To the extent that any Vim emulation mode overlaps with Vim, I have improved across the board. Of course this is true mostly for the less deep features IME.
Yeah, I know one of these people too. I know one for Emacs, Eclipse, Excel and of course SublimeText.
Honestly, I don't see why some folks obsess over text editors/IDEs. Familiarity and mastery matter way more than features. Sure, a truly barebone editor like Notepad.exe or nano might be insufficient, but any editor with a decently-sized following has enough features to make its users comparably productive - as long as you learn how to use them (This is almost a self-fulfilling claim: if an editor has a sizable following, that means it got something right for its users).
I mean, how else do we explain that Rob Pike uses Acme, Joshua Bloch uses Emacs to write Java, and Paul Graham uses vi to write code and prose?
I am sure I have read that part somewhere:
> Honestly, I don't see why some folks obsess over text editors/IDEs. Familiarity and mastery matter way more than features. Sure, a truly barebone
Are you quoting someone ? I think I read something like this some years ago and it turned into a short-lived meme about text editors.
Or am I experiencing some kind of déjà-vu ?
> But Sublime has things Vim can never have. It’s the new hotness and has a more active community than Vim does.
"Things Vim can never have"? Details please. "It's the new hotness"? Yeah, because I choose my software based on its hip factor rather than its suitability to do what I need.
These people are the reason we are going to spend the next twenty years cleaning up after these two-week fad languages/frameworks.
He gave several, did you read the article?
A proper extension mechanism for one.
A GUI that's not just monospaced fonts (or just some stylized buttons triggering functions, as Gvim, MacVim etc).
Ans lots of other things. As a matter of fact, a team even started refactoring Vim itself a few months ago, because they feel the current code doesn't cut it and they want to have a codebase that can be properly extended and get rid of all the legacy cruft.
http://www.webhook.com/webhook-uploads/1396995440381_1396021...
I'm a designer, not a programmer. I can't code perl, vimscript, and can barely read python or javascript. I can use git repos, which really is all I need to know how to setup Vim properly. That and I guess the ability to read some instructions. I've done nothing more than edit a .vimrc file.
It took me a month to switch to Vim from Sublime. There are certainly parts of this article that are true... it is hard to setup initially, but it's not two years, and it's not ugly. For me, the monospace fonts means that EVERYTHING in my vim window is aligned correctly.
Believe it or not I use Vim partially because it allowed me to set up the prettiest editor possible. Sublime just LOOKS bloated to me at this point.
I'd say by month 3 I was doing things faster in Vim. It had NOTHING to do with movement around my screen (though I certainly love that as well). It had everything to do with tailoring my editor to do what I wanted it to do when I performed certain actions / key commands.
In the end I think Vim is a fingerprint. Mine is different than yours. That's pretty awesome and certain of us really want that.
What I will say is that the vimscripts website is garbage. That is absolutely true.
>Sublime just LOOKS bloated to me at this point.
There are tons of themes you can use, including some far more minimal than your Vim screenshot. Don't know exactly what "looks" bloated.
Sublime Text did almost all I wanted out of the box. Maybe it has more functionality than I need, but it won hands down in terms of installing (and maintaining) software in order for it to be usable for me.
FWIW, since I abandoned Vim as my main editor, I just grab spf13-vim[0] when I want to use it. It's still really handy to be able to type vi foo to edit a file at the command line.
MacVim solves this for me to some extent, but since I don't have the time to dedicate toward learning the veritable library of Vim commands I find myself returning to Sublime over and over again.
I'd equate it more to using your mouse for everything in photoshop or spending the time to learn that V selects the arrow key, and G selects the paint bucket.
Once you learn vim commands it's more a problem of using regular text fields (like the one I'm commenting in now). Right now I really want to use Vim key commands, and have to tell myself to Shift-left to get to the beginning of this line.
https://github.com/fatih/subvim
I ended up modifying it pretty drastically over the course of a month. And essentially I think that's why the author stopped maintaining it. Everyone will set up vim their own way. That's kind of the point.
As for switching colors I'd imagine this page would help, though I'll admit I haven't read it: http://vim.wikia.com/wiki/Switch_color_schemes
I use Tomorrow Night myself: https://github.com/chriskempson/tomorrow-theme
If you have gnome terminal you can use different built in themes and fiddle with the color pallet.
[warning: high-contrast light theme] http://i.imgur.com/tITUU55.png
Seriously? It's about as hard as getting used to the keyboard shortcuts of Starcraft 2.
> It’s probably the most customizable editor ever
Emacs is way more customizable. Its help is also more accessible, its extension language awesome, its plugin ecosystem thriving.
"God willing Vim will one day have a non-Vimscript language we can use."
That day is today, and has been for years. VimScript is not the only way to extend vim. It supports scripting via Ruby, Python, and other languages, as long as you use a version built with this support.)
http://www.techrepublic.com/article/extending-vim-with-pytho...
The amount of stupid tedious pain you're supposed to go through with vi in order just to get a basic working editor is ridiculous. Like some kind of nerdy rite of passage. No thanks.
Is this some kind of joke? If this person is serious I think they're doing more harm to the image of Sublime than good.
I love vim's editing commands: moving through a document, deleting, copying, etc. I think it's by far the best way to edit text. I hate everything else about vim. I find project wide search, finding and opening files quickly, shells and repls inside of vim, etc to all be subpar compared to vim's competition. I'm currently giving emacs with evil mode a try. Although not perfect, it does address most of my vim concerns after using vim for about 4 years.
Vim isn't for everyone but if you're a power user that wants to master one text editor and use it for the rest of your life then Vim is that text editor.
And unlike the author, I feel qualified to speak on this as I've been using Vim for 10 years and SublimeText since version 1.
ST is fancy. It's also pricey. I can save you $80 and give you a script that will set up Vim and all the cool plugins you'll need. In fact I've done just that for some of my students.
People end up becoming proficient in Vim because they enjoy using it, because it works for them. There are thousands of them.
Maybe it is just me but the idea of having to go from one mode to the other to use the standard navigation keys seems like a strange thing to do. Having to hit ESC (now I have CAPSLOCK remapped) also seems rather inefficient. On top of that having to find the right plugin to install also drove me nuts, then no intuitive short cut keys and normal vs visual mode again.
Now I did like vim because it was a console app, and with tmux I could run many terminal windows in the same session. I just do not know if vim is right for me or I haven't spent the 10,000 hours mastering it yet. I am sure I will get there with more practice.
:wq
It did not take me 2 years to take significant improvement in text editing. Maybe 2 weeks, if even that. Then you have plugins, but honestly I don't really use them all that much.
I mostly use basic keybindings, ssh access, and the "ace-mode" plugin that lets you jump around with ease.
The thing which makes me sad is that emacs is nowhere near the quality of IDEs in almost all languages (maybe the only exception is Emacs Lisp). So I have to suffer inferior editing capabilities to get all the nice stuff (jumping to definitions, refactoring).
Editor wars are over. They are all useful all the same, small details matter these days... and looks.
years????
This is obviously a typo.
If you used a real editor, it'd be quite easy to change "years" to "days."
There's no question that vim requires a lot of messing around with initially to get it configured the way you want it. But that rapidly fades away and it's not such a big investment of time for something as important as an editor.
However, learning new keybindings and a bit of philiosophy seems to be too much.
Go on, downvote me. I dont't care, like bitch, i :q! you!
That's why they don't change keyboard layouts even though a different layout is probably more comfortable; it's why they don't change to VIM even though it's so powerful.
What they have is good enough for most of the time.
Perhaps universities should be teachin VIM and emacs?
It's not like the days when secretaries would be taught WordPerfect at colleges and thus WP could get away with a blank blue screen.
you should also consider trying emacs.
No. You need to start using it for 2 weeks and then you can no longer look back on any other editor. You don't need to read two books. Stopped reading the article right there.
Sometimes I read posts like this and think I should get a job at a research station in Antarctica so I don't have to watch the collapse of civilization when one of these people convinces banks to switch to Go and hype.js.
Whenever I really need to edit a file remotely, there is nano.
As a Vim user I feel like we are all just waiting for either Atom to become fast or for NeoVim mature.
I've seen a lot of people saying this. I've met people who actually experienced this. And I can't listen to it anymore - so I've decided to write a book about how I learned Vim quickly, and how everyone can do this as well[0]. People just don't learn Vim the right way.
There's no need for months of frustration!
When I was starting with Vim, my friends were telling me something like "Just give it a few weeks, and you'll never want to switch back.". However, in every previous attempt to become good at Vim, I would give up after couple of days. Not because I'm someone who give up easily, but because I had lots of work to do.
And with every attempt of switching to Vim, I would spend most of my time on fighting with my new editor and not on the actual work.
The thing is, I didn't have to put so much effort when I first tried Sublime, or when I tried to switch to Textmate. They were downright pleasant.
What my friends were telling me (btw, advanced Vim users), was something like:
- "Turn off the arrow keys, it's not the Vim way..." - "Force yourself to use keyboard all the time, don't use mouse at all!" - "You have to learn x commands, and y things, so you could do z stuff..."
Then I realized - that was wrong! So, in my last (and the succesful one) attempt to switch to Vim (and finally learn how to be productive with it), I decided to don't listen to my "Vim masters" friends. I just decided that in the first couple of days, I'll try to use Vim as any other editor. Just like simple Notepad. No commands, no mappings, no plugins, etc. Just editing text. And that's how it all started.
With using some learning techniques, I've managed to get good at Vim really fast.
For example, if you can't get used to, or you're not productive with h j k l keys for movement, just don't use them. I don't use them. I use arrow keys all the time. Vim "masters" will probably judge me because of this - cause it's not the "Vim way". So what? I don't care. Arrow keys work for me the best, and I'm happy with it.
[0] - I'm in the process of writing a book - Mastering Vim Quickly (from WTF to OMG in no time) link: http://www.jovicailic.org/mastering-vim-quickly/
I started using elvis and vim somewhere in the nineties and used the cursor keys until ~five years ago. I like hjkl more now, since I don't have to leave the home row and the cursor keys are awkward on Macs, but there is indeed nothing wrong with using the cursor keys if it's more convenient.
My approach to learning vim has been the following: start using it as any text editor until you are comfortable. Then take O'Reilly's vim pocket reference. Look for a command/movement that you think would increase your productivity. Try to integrate that command (and only that command) in your workflow. If you believe after a week that it indeed improves your workflow and enters your muscle memory, keep it, otherwise drop it.
Repeat this for some month, and you'll quickly learn the commands that increase your productivity the most.
Mastering Vim takes time, but the slope to learning it is pretty shallow. Learning Vim doesn't feel like a chore to me, because I just pick up new commands every so often.
Well, TIL I can easily indent html so there's that.
(thank you)
However in the end VIm and VIm style modal editing has been, at least in my opinion, a big improvement in my productivity and flow when coding. It's so big that I can't actually bring myself to switch back to something like RubyMine which is arguably a true IDE for what I work on most (Ruby on Rails).
I'm still a bit confused at peoples love of Sublime specifically. Sublime isn't an IDE, so to be quite honest I'm surprised people choose it over the tools from Jetbrains such as Webstorm, Rubymine and IntelliJ. Its benefit over an IDE, or over VIm, is perhaps just that it is fairly simple. It's downside is that it really isn't very powerful and its VIm mode is awkward and clunky.
The sad thing to me is that there are really just a couple of VIm features that make me stick around.
1. Split management that is easy to work with.
I use this all the time. I often need to be able to look at multiple files that are part of the same context I'm working in (view, controller, service, etc.). Tab switching is not effective for this in the least. Every other tool that can do split panes does this poorly. With VIm I can just Ctrl-P<Fuzzy Search>Ctrl-X/V and it's opened horizontally or vertically relative to the current pane.
2. VIm style text navigation and manipulation.
As true as it is that it's not that hard to just click where you want, I completely disagree with the authors assertion that it's just as effective as keyboard based text navigation and manipulation. Perhaps it's just a matter of flow, but being able to select text in multiple ways, manipulate it and repeat that is amazing. For an example of just how powerful this is in certain cases look at the VImcast on the "gn".
http://vimcasts.org/episodes/operating-on-search-matches-usi...
I use that one all the time since learning about it a few weeks ago.
The bottom line for me, is that until editors learn the lessons VIm has already taught us, it's going to be extremely hard for anyone who has learned to use VIm even half decently to stop using it. Perhaps that's the biggest reason to not recommend VIm to new people. They'll never forgive you for it. It's a trap.
I do complex search and replace very frequently, and almost always on a particular group of lines. In vim that's as simple as typing `:{start},{end}s/{needle}/{replacement}/g<ENTER>`, but in a GUI I have to select the lines with the mouse, likely reselect since I didn't get exactly the right selection the first time, then find the control key to hit <Ctrl-F> before I can even start thinking about my search terms.
I think it comes down to giving you the power to make the edits you will be doing frequently. I find it interesting the author spoke so much about autocomplete and autotab. It's probably just a matter of preference but I've always found that those features get in the way of effective coding. Every time I'm forced to use Visual Studio for something I feel like it's an unloved little kid that keeps piping up: "hey, hey I know what you want to do" but it's always sorely mistaken.
Let me replace on lines 6 through 437 of some text dump the leading curly brace with a function call to turn it into a code file and you'll win my heart, because those are the sorts of transformations that I want my editor helping with.
On the subject of VIm's search and replace, the VIm style regex does drive me nuts, I constantly have to remind myself what needs escaping.
Command-K, Command-Up to do open a new vertical split pane in Sublime with the current file.
Command-K, Command-Down to close the pane and move the file back, or just Option-Command-1 to switch everything back to a single column no matter how many were open.
One pet peeve I have is that Sublime came with a VIm mode package but yet didn't implement the split behaviours for it. Also you can't "open in split" which is supported in multiple ways in VIm.
It's a culture shock, overall. It's like moving from Windows 8.1 to Slackware 14.1. Even if the latter is far more transparent, well designed and productive, it's just so different. You're so used to an inferior paradigm that you react with disgust and/or fear at the sight of something better, and that has been around for even longer. We've figured out most of this stuff ages ago, really.
I've seen people flip their shit when I've installed something as dead simple as Linux Mint on one of their family members' computers, considering they only use the machine for web browsing and Skype, which is so much more ergonomic with a *buntu derivative. Then they go on and reinstall Windows, as if trying to rebuild their nest that was so violently disturbed.
Conditioning is some powerful stuff. We'd rather stick with goofy point-and-click interfaces that slow us down, rather than invest some time to learn a keystroke-based interface that will make us faster, more productive, and dare I say it... increase our admiration of computing?
It's why people want their eyecandy, which most of the time is little more than background noise, than use a tiling WM or something light in general. Dijkstra sardonically quipped that COBOL cripples the mind and BASIC leads to irrecoverable mental mutilation. This goes for most of our modern, consumer-oriented computing, as well.
I'm not directing this to the author, specifically. It looks like they tried, at least. We're content with inferiority. Try getting a person who's used to 20 years of QWERTY to switch to DVORAK. It may not be that difficult at all, but it requires stepping out of our comfort zone.
And in our staying with the subpar, we've erected a huge wall of inefficient software in the process. It may be invisible to the end user, but to programmers it's all too obvious, if not often admitted.
People need a consumer technology detox, I think. Personally, if you want a more standard editor/mini-IDE that conforms to the average person's expectations, go for Geany. At least it isn't proprietary.
Nope, Slackware 14.1 is not "more well designed and productive". I want a graphics editor with full CMYK proofing support and Smart Objects. Do you have one for your Slackware? Didn't think so. How about a DAW I can collaborate with any major studio, like say Pro Tools? Didn't think so again.
Of course those are MY use cases. But you can't generally talk about it "being more productive" (in general) unless you specify for what uses. For mine, it's very near useless. And that's the case for millions of people too, even if their needs doesn't include Pro Tools or Photoshop. They invariably include other stuff that Gnome/KDE don't give them. And the myth that "most people just use web and email" is also BS. Normal, everyday people, do tons of stuff Linux doesn't cater to well, from wanting to edit their child's birthday video on the PC, to wanting their laptop to sleep when they close the lid.
Slackware 14.1 might be a better for a server OS (but then again Centos and even Ubuntu LTS have eaten its lunch), but not for what lots of people use Windows for.
>Dijkstra sardonically quipped that COBOL cripples the mind and BASIC leads to irrecoverable mental mutilation.
Yeah, but then again he was all theory, and could snark about everything. Most of it is to be taken with huge grains of salt. Not to mention that the snide against those languages is ironic, coming from the guy who gave us ALGOL.
>I'm not directing this to the author, specifically. It looks like they tried, at least. We're content with inferiority. Try getting a person who's used to 20 years of QWERTY to switch to DVORAK. It may not be that difficult at all, but it requires stepping out of our comfort zone.
And what for? To adopt a ho-hum keyboard system, that's presented as a magic bullet for gullible people. DVORAK, the 80+ year old late-night-tv-special of keyboard systems.
A little bit of effort never hurt anyone.
> TL;DR I cannot in good faith recommend Vim to a new developer, even though I use it.
Since you're already familiar with vim, you clearly aren't in the target audience.
Well done.