Hacker News new | past | comments | ask | show | jobs | submit login

> what kind of medication the OP stopped taking

The OP has a really "sane" take on things imho (yes, it's incredibly opinionated, but it's blog post featured on HN, not a SO question someone like you can close in minute :) - and I'm glad he bothered to write it, as I'd probably just send the link to it to any newbies asking me about "the magical vim" instead of bothering to tell them what I think) and he's right on one thing: vim will not increase the productivity of a new user. The actual productivity increase will only happen months later (basically too late to worth it), and it will not matter that much because 90% of the time spent coding is actually spent either:

(1) plainly writing code (no advanced editor functionality helps here, Notepad++ is basically good enough!),

(2) making simple edits to code (again, more editor functionality doesn't really help because 90% of the time spend editing code it actually spent thinking about what to edit, not actually pressing the keys)

(3) reading code,

(4) exploring codebases (the only thing helpful at this is a full featured IDE - it just takes too much work to turn vim in to something like this, and you'll just end up with something mostly matching Netbeans feature-wise, so you could just as well install Netbeans or something else better for your language/framework in 5min and spend 1h to really learn how to use it),

(5) debugging (again, the only thing that could, for some, including me, increase productivity, is a full-fledged graphical debugger).

...and if you need to improve that last 10%, then you are far from a beginner at anything, eg. you are not the person that vim tends to be recommended to nowadays.

And the OP also expressed why I like ST so much: "To code in Vim, you have to keep Vim in your head just as much as the code that you’re editing. You have to constantly think about what you’re doing." - at most (not all) things ST beautifully follows the "don't make me think" principle: eg. arbitrary multiple cursors (no other IDE or editor besides Notedpad++ has them yet, no matter how many users requested this for JetBrain IDEs for example), that just let you "edit without thinking", keeping the code in your working memory instead of the sequence of search and replace commands.

But all that said, I absolutely love vim's keybindings and modal editing concept, so I tend to enable vim keybindings or install a vim-emulator plugin on most IDEs and editors I end up using because it also spares you of having to commit the different shortcuts that every other IDE and editor uses to "muscle memory". I see vim like more like an uptional UI/X layer that should be addable to any decent editor or IDE to enable experts to improve their 10%. Fortunately Sublime text has such a "layer" so OP's post is kind of valid.




What nonsense.

It is absolutely incorrect that you have to 'keep Vim in your head just as much as the code that you're editing' unless you have not learned Vim at all. The reason you don't (constantly) have to think in ST or notepad++ is because you have already learned that editing paradigm. Although, that editing paradigm IS more obtrusive than vim's. It's abundantly clear that you do NOT understand vim's keybindings and modal editing concept, if you constantly think about vim.

vim has code exploration tools integrated: they just have funny names like ctags, grep, cscope. If you want them. You can also just use separate tools for browsing vs. editing, with no obvious productivity loss.

The productivity impact of having the debugger in your editor process cannot be a big deal, and it's pretty weird to hear that this is essential right after you stress that notepad++ is good enough. Which one is it?

If the point is that you spend most of your time writing, editing and reading code and otherwise the only advantages are in heavy-duty tools not present in ST, then the implication isn't that it's "sane" to reject vim, the implication is that it doesn't make any difference what you use.


notepad++ is good enough for editing, not debugging, I didn't say that. I reject vim as a "general purpose programmer's text editor" and I reject recommending it to someone as such, but it's probably great for someone neck deep in nix sysadmining - actually that's what I use it for, on the server to quickly edit some configs, but on my laptop or desktop I just never touch it... and I also reject the vim way from a more "philosophical" pov: as an UI designer, I hate modal interfaces - if you have to think of or remember where you are, in order to know what you can do, or where to go in order do do some thing, then that UI needs a manual/guide, therefore it's broken by design (no, I never rtfm :) ).


I am not a UI designer, but I don't buy into the idea that this blanket notion of "modal interface bad" and "oh, it's got a manual? it's broken" applies universally across all interfaces for every use case. Or are you being facetious?

When we're talking about a text editor for programmers, I don't need it to be usable by somebody who doesn't grasp the domain to begin with. I'll gladly give up some UI sugar because in this context a modal interface is exactly what makes me so productive with it and partitions the complexity into composable chunks that are easily reasoned about.


> Or are you being facetious?

Well, I do use vim, so I can't really hate it, can I? :) ...it's just the thing that some things should just be plain and simple imho, code editing should not be a "domain" in itself and one should rather learn unrelated new things than bother tweaking that last 10% ...it's just a matter of preference and take on life, some strive for "mastery" at something and work on that last 10% to get an edge, others don't bother to achieve "mastery" at one thing but prefer to explore more things and get that edge by "perspective shifting" or "thinking more outside the box". I bothered to learn vim out of "exploratory curiosity", because I found the concept of such an interface interesting. But though interesting, I don't consider it a good idea anymore - if you give people a tool to manage complexity, they will take advantage and add more of it, for very little benefit.


Makes sense.

I guess I look at vim as less an interface that a user needs to become familiar with and more of a language that one learns to manipulate text. For example, I don't think the same design principles that go into maximizing conversions on a website necessarily apply to learning Russian. The tradeoffs are different, as is the payoff.


> eg. arbitrary multiple cursors (no other IDE or editor besides Notedpad++ has them yet

Emacs support for multiple cursors is also available: https://github.com/magnars/multiple-cursors.el


Jedit has had multiple cursors built in for years. like '08 at least.


And multiple selections. I didn't find any use case for them.


They're GREAT for refactoring. Select something. CTRL-D a few times to keep selecting other instances of the same thing. It's not global find and replace.

Or, when you have a nice set of lined up/indented declarations, it's trivial to just right-click+SHIFT and drag a cursor before every line and start typing.


Visual Studio also has this with the MultiEditing plugin: http://visualstudiogallery.msdn.microsoft.com/2beb9705-b568-...


can it select, copy, paste and do zen-coding like expansions in multi-mode? if it can't do all of them or I can only use it to insert multiple cursors at search points (like the emacs multiple cursors plugin, sigh) I'll consider it useless for my workflow.


I said "arbitrary" exactly to differentiate from the emacs multiple cursors: I need to either add a cursor to each line of a selected region or add them based on search keywords, I can't just mindlessly ctr+click in 3 completely different non-adiacent places and have it work (or can I?).


"at most (not all) things ST beautifully follows the "don't make me think" principle: eg. arbitrary multiple cursors (no other IDE or editor besides Notedpad++ has them yet, no matter how many users requested this for JetBrain IDEs for example"

What do you mean by "arbitrary multiple cursors"? Do you mean the thing that all Scintilla-using applications (which Notepad++ happen to be one of) have?


I said "arbitrary" because a number of editors like emacs or jetbrains IDEs have some sort of multiple cursors or square selection, but they just don work in simple way like ctrl+click to put them anywhere or allow breaking up the selection into lines ..."arbitrary" is not the right word, I know, I mean more like "multiple cursors done right" :)


Honestly, I can't remember finding a recent text editor that couldn't do it, TextAdept being the latest one. Sublime Text definitely has major selling points (in the sense of having advantages compared to other editors) but this is hardly one of them.


Can you tell of any IDE editor that has this? (Eclipse: nope, Netbeans: nope, all the Jetbrains IDEs family: nope, Visual studio: nope / actually there's one handicaped plugin to sort of do it in VS)


I've never used any IDE other than Emacs, so I can't comment on that.


eg. arbitrary multiple cursors (no other IDE or editor besides Notedpad++ has them yet, no matter how many users requested this for JetBrain IDEs for example)

Oh, you mean like this?

http://emacsrocks.com/e13.html

https://github.com/emacsmirror/multiple-cursors


Notepad++ is good enough until you need to do a regex search that includes new lines in it.


?? he can do, in Ctrl-F dialog box enable ". matches newline", I've done that more than once and never had any problem...?


True, but in extended search and replace mode you can handle newlines without goo much hassle, it's just not in the standard regex option


And it's windows-only.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: