Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A better vim sounds great.

That said I suspect most people would be better off learning a good IDE properly, including but not limited to:

* effective navigation and selection using modifier keys and search

* built in refactoring

* project wide as well as single file search/replace, -and this includes regex search AND replace.

This should be quite doable in less than a week compared to a few months to get equally effective in vim.

Edit: let me add that parts of this looks like a huge improvement over vim.



> That said I suspect most people would be better off learning a good IDE properly, including but not limited to:

To be clear, do you think a "good IDE" is inherently better than Vim/Kako for most people?

Personally i don't see a difference in a GUI based editor and a text based editor. In fact, i quite prefer text based, because it forces an editor to treat the keyboard as a first class citizen - GUI IDEs can get lazy and revert to mouse whenever they please.

I can see the argument that Vim might not be inherently as good as a "good" GUI editor, but i don't think that is a negative towards the potential of text based editors. It just means that we need new editors to focus on the UX, imo.

With that said, i'll be quite glad that we're moving towards standardizing (of sorts) a code editor protocol so that new editors don't suffer from lack of tooling. It will be great to see a single set of tooling (formatting, linting, imports, syntax checking, etc) plug into any new editor that might pop up.

Switching editors has enough friction, tooling shouldn't be one.


To be clear, do you think a "good IDE" is inherently better than Vim/Kako for most people?

Right now, for most people: very much yes.

Personally i don't see a difference in a GUI based editor and a text based editor. In fact, i quite prefer text based, because it forces an editor to treat the keyboard as a first class citizen - GUI IDEs can get lazy and revert to mouse whenever they please.

Fair point. However: Between the default keybindings of Netbeans on Windows or Linux and the simplicity of customising it to my hearts content I haven't found any reason to abandon it.

I can see the argument that Vim might not be inherently as good as a "good" GUI editor, but i don't think that is a negative towards the potential of text based editors. It just means that we need new editors to focus on the UX, imo.

Here is where I'll argue that the main advantage of the big IDEs are that they have focused on UX for years.


> Here is where I'll argue that the main advantage of the big IDEs are that they have focused on UX for years.

Yea, i definitely agree there. It's also that GUI IDEs tend to cater towards.. well, a different crowd. What that means in real world terms in often a product with rough edges, confusing patterns, and a horribly steep learning curve.

I enjoy seeing products and languages (programming) focus on learning as core feature of the product. It really is inherently important to a projects success.


Meanwhile, Git has taken over all source control for development despite being possibly one of the worst applications ever created. (Hell, even Lotus Notes tried to be usable-- it failed, but it tried.)

It's a lost cause in this industry.


> Here is where I'll argue that the main advantage of the big IDEs are that they have focused on UX for years.

You say that, but somehow I still find the UX of every IDE I've tried to be lacking. I much prefer the UX of Emacs.


You spent (likely) years learning Emacs. How much time did you spend learning each of those IDEs you've tried?

You have to realize that psychologically: you like things you're familiar with, and dislike things you're unfamiliar with. That's how top-40 radio works. That's why everybody bitches over every new software update, even when the new version is provably better.

So of course you like the thing you spent years with over the thing you tried to learn for a week and a half then gave up on because Emacs is better. That has nothing to do with UX.


I've spent years in Eclipse as well (and still use it every day at work for Java stuff), and I appreciate a lot of the functionality it offers, but I definitely find the UX lacking. It's klunky. Yes, it's maybe more discoverable (although, at least in the case of Ecipse, that's debatable) and some of the keybindings are probably more familiar to most people, but I find that even though Emacs has a bit of a learning curve, once you've gotten past that, the experience of actually using it is very fluid and productive.


The core "IDE" features you don't normally get with an editor are things like project views, intellisense, code completion as you type, real time parsing and error highlight, code navigation. Sure you can get most all of this by wrangling plugins for vim (or which ever editor you choose) but in an IDE like eclipse, netbeans, intellij, visual studio, it's all there, ready to go.

In effect, a modern IDE is "programming ability" multiplier. It helps me code smarter and faster. That plus understanding what's going on behind the scenes is a powerful combination.


Vim and Emacs actually have quite a bit of support out of the box for code development - the ability to follow tags, goto different files, code completion, syntax highlighting, build integrations, etc.

The difference is that IDE-like features Vim are simply tuned for C (add Lisp for Emacs) instead of Java; plugins give them support for other languages. Anyone who has tried to write something other than Java in Eclipse can attest to how much plugin creep starts to enter the fray.


Sure, but the biggest problem with modern IDE's is the fact that they are terrible at editing text.

IDE's and text editors overlap in their uses, but they are not the same. Sometimes you really do just have a text editing task, and none of the IDE functionality will help with it. Also, the ways in which IDE's are extensible is lacking compared to something like Emacs. Yes, they come with a bunch of built-in useful stuff, but sometimes you want to add a keybinding to do some editing task you do a lot in a particular project or company, even if it's not useful in a more general-purpose setting.


Yes, they come with a bunch of built-in useful stuff, but sometimes you want to add a keybinding to do some editing task you do a lot in a particular project or company, even if it's not useful in a more general-purpose setting.

Don't know what IDE you used but Netbeans is very customisable and extensible.

I think this is true for IntelliJ and eclipse as well and it would surprise me if it wasn't for Visual Studio.

(In fact I think I have seen vim modes for all of these and even embedded vim in eclipse.)


I think I probably didn't explain my meaning well. For Netbeans, Intellij, Eclipse, VS, etc. you tend to have to create a new project to write a plugin.

In Emacs, adding a simple extension is simply a matter of adding a function to your .emacs file. So adding useful functionality is very low friction, low enough that you can afford to do it when it wouldn't be worth the effort in an IDE.


Note, it sounds like Kakoune is trying to be a text and code editor first. Not just a text editor, like Vim is out of the box. Completion and code related tools appear to be first class citizens.

With that said, it's purely speculative on my part, i clearly don't know - Kakoune is new to me.


But if you are like me and work in many different languages, you'll have to spend 10 weeks to learn 10 different IDEs, rather than 8 months to learn one Vim.


The ones I have used (IntelliJ, Netbeans and eclipse) were quite effortless to jump between.

I doubt Visual Studio will be much harder.

Jetbrains covers Ruby, Python, JS, C and more and it would surprise me bigtime if those language specific versions aren't quite similar to the plain Java version as well.


I think Vim is far easier to learn than Visual Studio. The menus are completely unintuitive, bureaucratic and painful to use.

I always use cl.exe from the command line with Makefiles.


Why not stop using the menus then? ;)

Visual Studio can be operated pretty much entirely from the keyboard. The default shortcuts are fairly sensible, and you can always add more from the options.

There is one major omission: changing build configuration or build target. (You can give the configuration manager a keyboard shortcut, and do it that way, but it's a bit unwieldy.) So I keep the relevant widget in the toolbar and use the mouse to do it. And there are a few things I haven't bothered to assign keyboard shortcuts to, on account of how rarely I use them.

But in general, I use the keyboard to perform actions, and it doesn't feel like I use the mouse any more than I do with emacs (which I use without scrollbar, toolbar, or menu bar).

I do use the mouse a lot for moving the cursor and selecting text in both cases. (Visual Studio is actually slightly better for this, because you can Ctrl+drag to get word selection.)


Your comment is the last one that has a reply link, so I'm using it, though none of the following applies to it at all.

Over the years I've observed that VS criticism is downvoted quite rigorously here. This is in stark contrast to the overall sentiment on the Internet, so I suspect corporate downvoting here.

The moderators should take a look at it.


> Why not stop using the menus then? ;)

Because you have to learn more commands/shortcuts than in Vim? ;)


Won't say anything bad about vim, I use it on a daily basis but normal IDEs aren't necessarily as bad as some people seem to want to portray them:

A few hints to get reasonably good, fast:

Use ctrl+arrowleft/arrowright to jump words at a time.

Use shift to select as you move.

This works together so ctrl + shift + arrowright means select to the next word boundary.

At keast in some IDEs this will also stop at word boundaries inside a variable or function name but this should be configurable. I prefer it this way though.

Next: in the menus you'll often see a hint that tells you a direct shortkey for that menu option. This holds true for both window menus on the top as well as in the right click context menu.


A few hints to get reasonably good, fast (in vim):

Use w, W to jump words at a time.

Use v before moving to select as you move.

This works together, so vw will select to the next word boundary.

Press i to insert text, escape to stop inserting text.

Next: in the :help files, you will find a hint that tells you a direct shortcut for that command (like :help quit, or :help write, or just plain :help).


I personally already use vim, actually prefer it when I remote to servers.

I guess my point is just that it seems to me a lot of people (not necessarily you guys) use vim as some kind of cargo cult.


When you are trying to learn a new thing, and you refuse to learn more than you already know, you are guaranteeing that you will be disappointed.

If you aren't willing to learn more than the Vim shortcuts, it's unfair to criticize Visual Studio or any other product. You are the problem.


I think it is very hard to be more unintuitive than vim.


Vim is unintuitive at first, but there's excellent documentation.

With Visual Studio, the documentation is horrible, you always encounter stale links to unorganized and regularly changing microsoft.com websites.

Relatively basic things are left unexplained and documentation is outsourced to Stackoverflow:

1) How do I restore the output window I clicked it away in order to make the editor usable in the first place?

2) What the heck is a "project" and why do I need one?

3) Why do I need so many frigging clicks to get to the debugger (the debugger itself is nice though I have to admit)?

The list goes on an on. All these things are far simpler with vim and gdb: Need to debug x87 fpu registers? One simple google search and you have an instructive plaintext website that tells you everything and off you go.


>"1) How do I restore the output window I clicked it away in order to make the editor usable in the first place?"

There are many ways, it comes down to personal preference. For example, would you prefer restoring the Output window using a keyboard or a mouse?

>"2) What the heck is a "project" and why do I need one?"

The same reason you probably use a makefile when working with Vim, to manage your dependencies and build configurations.

>"3) Why do I need so many frigging clicks to get to the debugger (the debugger itself is nice though I have to admit)?"

I don't know what you're talking about here, the debugger is accessible with hardly any effort at all. How many clicks are you using to bring it up?

>"The list goes on an on. All these things are far simpler with vim and gdb: Need to debug x87 fpu registers? One simple google search and you have an instructive plaintext website that tells you everything and off you go."

Depends on your use cases. I've personally never found MSDN documentation lacking, plus it's ridiculously easy to use. For example, when coding in C#, highlight a language keyword and press F1, you'll be brought to online documentation about that language feature.


I don't know about visual studio, but I use IDEA which have a pretty good documentation. Far better than vim's one. And I need less because things are quite intuitive in IDEA.


How long have you used each of them and for what?




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

Search: