Settings

Theme

Just Use Sublime Text

delvarworld.github.io

90 points by smegmalife 12 years ago · 111 comments

Reader

Tloewald 12 years ago

I've been coding for a long time. I started on ijkm (Apple II) and editors that make vim look modern (when I was in college the congnoscenti tried to get the CS department to provide sed, and eventually implemented their own version and passed it around), and I've always regarded the vim/emacs crowd as amusingly deluded.

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.

  • vladharbuz 12 years ago

    > you can do much more far more easily in notepad with a mouse/trackpad

    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.
sergiotapia 12 years ago

Refreshing to see this after all the Vim gospel programmers out there claiming it's benefits. I do have to say though, I've seen some videos of real Vim pros at work and it's -majestic- how swiftly they move through lines and duplicating lines, editing params, refactoring, etc - a thing of beauty akin to watching videos on /r/artisanvideos[0].

I'll stick to Sublime Text and Nano when I need some ssh terminal editing. :)

[0] - http://www.reddit.com/r/artisanvideos

  • bphogan 12 years ago

    Our industry works this way and I don't understand why programmers who are always "using the right tool" call anything new that they disagree with "gospel" or "evangelizing."

    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.

    • vertex-four 12 years ago

      The issue, really, is that vim is stuck in terminal land. It can't have easily navigable GUI menus, it can't really have overlays, it can't have a minimap, it can't have differently sized text, it can't have all sorts of things as a result of its dependence on the terminal. It doesn't even have autocomplete for its commands, at least out of the box, which would make it significantly more usable without disappearing into help files every time I want to do something I don't do often.

      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.

      • hedwall 12 years ago

        I you are interested in a fork, have a look at neovim[0]. Many of the issues you describe are being addressed.

        [0] http://www.neovim.org

      • johncoltrane 12 years ago

        The issue, really, is that most Vimmers, including its core devs, don't care about all the gimmicky features you list.

        • vertex-four 12 years ago

          They're not gimmicky. I depend on them every day, either for learning or for regular use, just like vimmers depend on the weird ability to build up ridiculously complex commands. You may as well call user interfaces aside from the shell prompt a gimmick altogether.

          • johncoltrane 12 years ago

            You depend on them everyday but most people don't and nobody cares about that because nobody is trying to force you to use Vim or even change your perspective about it. Some retarded bloggers, on the other hand, like to use their lack of patience/knowledge/willingness to learn as a proof that Vim sucks. Well… they don't really serve their goal, do they?

            > vim is stuck in terminal land

            For people who use a terminal it's not a problem at all.

            > It can't have easily navigable GUI menus

            I suppose MacVim and GVim don't count. Vimmers usually don't use menus, though.

            > it can't really have overlays

            And we don't want that gimmick.

            > it can't have a minimap

            And we don't want that one either.

            > it can't have differently sized text

            Same.

            > It doesn't even have autocomplete for its commands, at least out of the box, which would make it significantly more usable without disappearing into help files every time I want to do something I don't do often.

            It has tab-completion, though.

            > Add on to that its awful configuration language

                set showmode
            
            is awful? Oh yes, JSON… the answer to every damn problem on earth.

            > 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.

            To be honest, if Sublime Text had been available for Mac OS X and Linux when I was looking for a cross-platform TextMate alternative I would have switched to it in a heartbeat. But I chose vim out of a very large pool of editors/IDEs and, frankly, using anything else is now a PITA.

            I'm actually quite comfortable with Vim's perceived learning curve: it keeps the most superficial users out of our ecosystem.

            • sergiotapia 12 years ago

              >I'm actually quite comfortable with Vim's perceived learning curve: it keeps the most superficial users out of our ecosystem.

              Literally the dumbest thing I've read on HackerNews. https://twitter.com/shit_hn_says material.

              Why would you even care who uses what or belongs to your 'ecosystem'? What?!

    • yen223 12 years ago

      The Sublime Text knowledge I have is pretty esoteric, I admit. You have to learn weird key combos like Cmd-C to copy text into a register (or a "clipboard", to use ST's unusual terminology), and Cmd-V to "paste" it. I have no idea which other software uses those shortcut combos.

      • bphogan 12 years ago

        I'm referring to the many, many ST things I mentioned in my posts. Copy and paste is trivial and I'm sure you're aware of what I was referring to.

      • jlogsdon 12 years ago

        You can do exactly that with GVim if you are so inclined.

        • yen223 12 years ago

          Or I could use SublimeText 2 and not have to learn weird keyboard combos that only work in Vim.

    • overgard 12 years ago

      You would think it would translate, but my experience with most VIM plugins is that they're rubbish. They have the surface level stuff (basic keys), but they don't even come close to replicating a lot of the more advanced things (paragraph editing and so on)

    • wonderzombie 12 years ago

      You're mostly right re: knowledge transfer, although it's really as simple as you imply.

      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.

  • kiyoto 12 years ago

    > I've seen some videos of real Vim pros at work

    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?

    • johnchristopher 12 years ago

      Wait a minute.

      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 ?

  • carterparks 12 years ago

    I feel very bad for anyone that uses Nano for any kind of terminal editing. Not to mention there's a whole class of very serious developers that live in the terminal. Nano is the notepad.exe of *nix.

gnuvince 12 years ago

So, in a few thousand words, the author manages to give multiple reasons not to use Vim and not a single one to use Sublime Text, except this:

> 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.

  • eudox 12 years ago

    >It's the new hotness

    These people are the reason we are going to spend the next twenty years cleaning up after these two-week fad languages/frameworks.

    • hazz 12 years ago

      Sublime Text is 6 years old. While not comparable to the age of vim or emacs, it's not exactly a "2 week fad" piece of software.

  • coldtea 12 years ago

    >"Things Vim can never have"? Details please.

    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.

  • ignu 12 years ago

    "i love relearning a new editor every two years"

snide 12 years ago

This is what my Vim looks like.

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.

  • coldtea 12 years ago

    Is the screenshot supposed to be impressive? It has all the constraints the post mentioned.

    >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.

  • wonderzombie 12 years ago

    I guess bloat is subjective. Your setup looks nice and I'm glad you found something that works for you. But on the flip side, it "looks" bloated to me, too— any reasonably useful Vim setup will have at least a dozen or so plugins and/or an intricate .vimrc.

    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.

    [0]: http://vim.spf13.com/

  • hbosch 12 years ago

    I have to ask, being that I am a designer too, do you find it awkward to move from Vim keybindings into design programs? I have an interest in learning Vim, due to all of the vehement and myriad posts about productivity increase, but I can't divorce myself from the design programs I use (~80-90% of my day, Adobe/Sketch) and their keybinding philosophies in order to feel very comfortable switching directly to Vim and back.

    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.

    • snide 12 years ago

      Text programs and design programs are already so different it's never a problem.

      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.

  • stickperson 12 years ago

    Whoa, I had no clue you could do all that. Did you follow any guides? I'd love to see my folder structure and be able to switch colors.

  • niix 12 years ago

    Please share your .vimrc or any plugins you use.

nfoz 12 years ago

I don't use Sublime Text because it's not free software and it doesn't run in a terminal. I like vim, but I'm not "stuck in my ways" and would gladly switch to a better editor that meets those two requirements.

  • pgeorgi 12 years ago

    http://limetext.org/ might be interesting to you at some point (and despite the suspicious landing page showing event from November to February and then silence, there's activity in the repository)

  • zanny 12 years ago

    Then just use Kate or Geany. I love Kate. It even has a vim mode!

garrettdreyfus 12 years ago

I don't understand the need to write an article which criticizes a matter of preference. EDIT: I am also astonished at the authors attack on those who operate the vim wiki. He suggests that those who operate the site have personality disorders and are robots and emotionless coders. Come on.

EduardoBautista 12 years ago

> For the first 1-2 years of your Vim usage you will be much less efficient than your current editor because of the odd yet lovable key bindings.

Seriously? It's about as hard as getting used to the keyboard shortcuts of Starcraft 2.

  • EvilPopsicleDog 12 years ago

    Haha, that's a very accurate analogy!

  • Dewie 12 years ago

    I use grid layout for SC2; easy to learn and no reaching for awkward keys. I haven't seen any arguments for using the standard keyboard shortcuts.

wging 12 years ago

I think this article drastically overstates the learning curve. Also,

> 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.)

badman_ting 12 years ago

It's the blog post I was born to read. Thank you for writing this.

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.

danford 12 years ago

>Vim: The Editor You Need To Read (At Least) Two Books On To Use Well

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.

danielsamuels 12 years ago

If you did want to use Sublime, I co-authored a post on Friday talking about how we get the most out of it: http://www.onespacemedia.com/news/2014/jun/20/software-spotl...

city41 12 years ago

I would recommend Atom over Sublime Text if for no other reason than it being open source. But Atom also has the might of github behind it and a very fast growing community.

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.

carterparks 12 years ago

I think many of these comments are failing to mention one of my primary reasons for using vim... the power of being able to use the same editor in a GUI and a shell. It takes me at least a day to setup my workstation for development but if my laptop crashes I can always SSH into my workstation VPS and get work done. It's also nice to be able to edit server configuration files with the same editor that I write code in.

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.

bphogan 12 years ago

I just don't get it. The only difference between SublimeText and a GUI version of Vim is that the keyboard shorcuts in SublimeText don't follow the same command/movement patterns as Vim.

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.

tedunangst 12 years ago

Yikes. I've been trying to use vim without plugins for 15 years. I'm glad somebody told me it's unusable, otherwise I may not have noticed.

  • f15h 12 years ago

    Same here, 15 years. If it wasn't for this article I would have not noticed as well.

justinhj 12 years ago

This article is very low on content yet appeals to those who really want an excuse not to learn something. "Oh, I don't need to feel bad about that time I gave up on learning Vim because of that random guy on the internet."

People end up becoming proficient in Vim because they enjoy using it, because it works for them. There are thousands of them.

zaqokm 12 years ago

As a person who is hovering between a tmux+vim setup and rubymine, I find vim rather convoluted. I was hoping vim was going to be my goto editor, as I was looking for something which was multiplatform, and was a polygot platform ( the one thing I really do not like rubymine for).

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

norswap 12 years ago

What about Emacs? I always found Vim UI (with the two modes) weird (but that's my own very subjective opinion).

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).

skimmas 12 years ago

Don't use vim... unless you want to. One thing is certain... there's not one single editor out there that by itself can turn you into a better coder... and in the end that is the only thing that matters. Try them all use whatever you like. I'm a designer... I started using vim because I was doing a boring job and needed something to make it feel like a challenge. I still suck at most keyboard shortcuts but I like the challenge of finding a way to improve every now and then. Does using vim make more productive? Probably not. But neither does this comment :)

Keyframe 12 years ago

Over the years I have extensively used (and customized) Vi(m), Emacs, UltraEdit32, back to Emacs, Sublime2. Every single one of those is a great editor and completely suitable for fast work. Major reason I am, mostly, in Sublime2 is that I have fullscreen mode with it (which I prefer) without resorting to hacks (Emacs on windows for example) or opening up editor in terminal - and it is all the same all over three OS' I use daily.

Editor wars are over. They are all useful all the same, small details matter these days... and looks.

ignu 12 years ago

"For the first 1-2 years of your Vim usage you will be much less efficient than your current editor"

years????

This is obviously a typo.

If you used a real editor, it'd be quite easy to change "years" to "days."

  • kylec 12 years ago

    I don't know, when it comes to navigating and manipulating a single document I can see vim's advantages, but having spend a few days recently trying to learn vim I didn't find any replacements for things like jumping to a file by name or recursive regex searching, things that I've come to rely on in Sublime. Feel free to point out if I missed them, but it seems based on my initial experience with vim that there's not really a concept of a "project" or a "codebase", just the collection of buffers you happen to have open at the moment.

    • MrScruff 12 years ago

      Much of what you're looking for is provided by plugins (eg. command-T).

      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.

      • kylec 12 years ago

        I think there are two kinds of programmers, those that love tweakability and configurability and spend lots of time customizing and perfecting their setup, and those that just want to use stock software with as few modifications as possible. I'm in the latter camp.

        I'd like my skills in using a piece of software to be transferrable - I'd like to know that if I'm using vim or whatever on my personal machine or on another machine with no customization, that the experience is the same between both. For the most part, Sublime provides that.

        However, I'm willing to give vim another shot, do you have links to the plugins that you mentioned?

        • MrScruff 12 years ago

          I actually don't typically like endlessly tweaking my software either. I was prepared to do this with vim only because a text editor is such a key tool for a developer that it justifies the outlay of time. In addition, I wanted an editor that was available on any platform, and in a shell. It's true that vim under someone else's login will behave differently, but that's not a common case for me.

          Command-T can be found here:

          https://github.com/wincent/Command-T

      • adamors 12 years ago

        Not really, there's vimgrep plus regular grep on the command line.

aschampion 12 years ago

Or just use vim in Sublime Text through vintage mode or the vintageous plugin. I use mouse navigation plenty when browsing code, but a mouse is never going to be as effective at routine tasks like changing text inside a matching bracket, switching case, etc., none of which require dealing with vim plugins. Sure, all those things can be done through an IDE like ST without vi bindings, but only by memorizing even stranger meta key combinations that don't combine into a powerful grammar like vi.

  • taternuts 12 years ago

    Yeah I came in to say using vintage mode + VintageEx is fantastic and what I spend 80% of my time developing in.

  • n1c 12 years ago

    I do this and it's really the best of both worlds.

DrinkWater 12 years ago

I am a vim user and i don't understand how people always exaggerate on the learning curve of vim. Coming from a group of people that is probably the most arrogant and stuck-up group of professionals. "We are amongst the smartest people on earth", "Let's disrupt everything", "lifetime learning...", etc.

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!

  • DanBC 12 years ago

    Programmers are programming now, today.

    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.

ax 12 years ago

I considered switching to sublime from vim just for sane line wrapping. If you have indents, vim forces you to hard wrap or else end up with an unreadable soup. Sublime, on the other hand, makes the sane choice of preserving indentation level when a line is wrapped. Sublime's setting makes editing large HTML files in a variable width window much more pleasant...

thejj 12 years ago

but it's non-free software.

you should also consider trying emacs.

snitko 12 years ago

> Vim: The Editor You Need To Read (At Least) Two Books On To Use Well

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.

  • stickperson 12 years ago

    I hear ya. I'm currently giving vim a after using Sublime since learning how to code. I'm at the point where I pretty much prefer vim for backend stuff, but I sometimes like Sublime when I'm working on the frontend, especially Angular. I have so many different files in different folders, and I'm just used to being able to get there quickly with Sublime.

    • snitko 12 years ago

      You should try Vim Command-T plugin, kicks ass in terms of reaching files quickly.

eudox 12 years ago

Sometimes I love my job.

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.

geon 12 years ago

> You’re going to be useless in the technology world if you can’t edit a file remotely, which will you will be in a terminal for, and which you will be using Vim for.

Whenever I really need to edit a file remotely, there is nano.

nicolasd 12 years ago

I started learning vim a few weeks ago and had the very same experiences as the author. However, I am currently use the "Vintage" Package in Sublime, to get the nice things from both worlds.

tbrock 12 years ago

I really want to like sublime but the rules around its extensibility are too rigid: you can't change the UI.

As a Vim user I feel like we are all just waiting for either Atom to become fast or for NeoVim mature.

300 12 years ago

"Everyone talks about the steep learning curve but no one talks about what happens once you finally get hjkl in your brain for movement. The answer is months of frustration, followed by finally having a usable editor, followed by knowing some cool tricks that you use in 1% of your daily workflow."

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/

  • microtonal 12 years ago

    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.

    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.

  • weavejester 12 years ago

    This was my approach as well. When I started using Vim I used it almost like a normal editor, and spent most of my time in insert mode. Gradually I started spending more time in normal mode, and eventually I incorporated more advanced features like text objects and surround.vim into my daily editing.

    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.

  • randallsquared 12 years ago

    Yeah, I've been using Vim as my main editor for around 15 years, and I still use the arrow keys.

  • thegeomaster 12 years ago

    If you don't mind me asking—where are you from?

geeku 12 years ago

there is still emacs out there and getting some fresh air recently.

muteh 12 years ago

> We will never have multiple cursors

https://github.com/terryma/vim-multiple-cursors

johnchristopher 12 years ago

>:set ft=html and then gg=G. Let me know what you get. In all seriousness, never, ever tell me what you get.

Well, TIL I can easily indent html so there's that.

(thank you)

lucisferre 12 years ago

I sort of, but very reluctantly, agree. I would add that modern VIm package systems like SPF13 make it much easier and more accessible, I'd suggest the author check that out instead of continuing to maintain that 700 like vimrc file. That having been said, I still end up fixing a lot of bugs that crop up even with my SPF13 setup (the bright side is I can now contribute those fixes back to a project so others don't need to suffer).

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.

  • couchand 12 years ago

    I agree that the author seems to be missing some of the beauty of keyboard commands and navigation. Sure Sublime does some things vim can't, but you can do things in vim you certainly can't with mouse-only input. For instance, I use visual block mode dozens of times a day, which allows identical edits to be made to multiple lines simultaneously.

    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.

    • lucisferre 12 years ago

      Actually, Sublimes multi-edit feature is actually pretty good and it's something I'd love to see VIm able to do. What I want to edit isn't always organized into neat vertically aligned blocks.

      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.

  • tedmiston 12 years ago

    > 1. Split management that is easy to work with.

    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.

    • lucisferre 12 years ago

      I've used split management in Sublime. I can say with some certainty it is awkward to work with compared with VIm's. Perhaps that's partly because I'm used it it.

      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.

dan_bk 12 years ago

Why not LightTable? -> http://www.lighttable.com/

  • dragonwriter 12 years ago

    LightTable looks like it might be fantastic but seems to be in desperate need of better documentation. Or maybe just better organization of the documentation. (My initial impression is that the UI has the same problem as the documentation -- very poor discoverability.)

vezzy-fnord 12 years ago

As a person who doesn't even use elvis/vim as their main editor, I have to say: the reason people have such an aversion to it is because of all the years they have been conditioned to accept mediocre user interfaces and computing in general.

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.

  • coldtea 12 years ago

    >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.

    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.

    http://www.economist.com/node/196071

    https://www.utdallas.edu/~liebowit/keys1.html

nonzer0 12 years ago

i learned as much as I needed to be productive in vim in one semester during one class in college. Been steadily picking things up since then. Not a high barrier to entry and definitely more efficient than sublime etc.

A little bit of effort never hurt anyone.

LoganCale 12 years ago

No. I'll keep using vim, because I'm efficient in it and I enjoy using it.

  • itsame 12 years ago

    To be fair, the article explicitly states the following:

    > 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.

seymores 12 years ago

Read 2 books to use Vim? Seriously, w.t.f? Just give it 2 weeks using Vim.

liveoneggs 12 years ago

Just use real vi without a million plugins.

  • gnuvince 12 years ago

    I've been wondering lately if the "modern" Vim setup is closer in spirit to vi from which it descends or to Emacs. Seeing as how people are trying to enable all sorts of non-editor tasks inside Vim, I'm inclined to say the latter.

johncoltrane 12 years ago

The author refused to learn how to use his editor so he recommends others to avoid it.

Well done.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection