Comments on: Vim is a usability nightmare http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/ I will not fix your computer. Tue, 04 Aug 2020 22:34:33 +0000 hourly 1 https://wordpress.org/?v=4.7.26 By: Luke Maciak http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-63591 Sat, 08 Feb 2014 06:44:55 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-63591

Richard wrote:

Have the Vim developers truly been unable to improve the basic usability of Vim without sacrificing power? Every other category of software in the past few decades seems to have gotten both far more powerful and more usable. It’s hard to believe that the pinnacle of text editing power cannot have a user interface any better than Vim.

Yeah, I didn’t explain it in this post. I did give examples in another post though. The main selling point of Vim is the modal editing paradigm. You have insert mode, in which you just type words and the normal mode in which each key on your keyboard does something. There are different types of keys:

– movement keys that reposition the cursor
– actions such are replace, delete, change, etc..
– objects such as word, sentence, paragraph, HTML tag, indentation block etc..
– object modifiers: inside the object, around the object, etc..
– repetition keys that let you chain actions
– utility keys like . which repeats last sequence or q which starts recording a macro

So in essence, Vim has a “vocabulary” from which you can build command sentences. For example, lets say you are editing a web page, and you want to replace the text within the h1 tag. A Vim user will basically think about this action in terms of vim commands and objects change inside tag or c i . You can be anywhere within the tag, and this command teletes the contents and puts you in insert mode so you can type new content. Want to delete a long list of arguments from a function call and call it without passing anything instead? delete inside parens or d i (.

You can also hit q and record a whole chain of commands an the replay it on arbitrary lines. Without modal editing, you can’t have Vim’s internal vocabulary. Without the internal vocabulary, you don’t have the power. I haven’t really seen any other editor do anything like it. Well, except Emacs in Evil mode. :P

Richard wrote:

Aren’t all text editors with customizable keybindings and a (Turing-complete) scripting language roughly equal in power? Is VimL better than Elisp, REXX, Tcl, or Lua? Not that I can tell: people who use VimL always seem to be complaining about how horrible it is as a language. In fact, even though I know relatively few Vim users, I’ve heard more complaints about VimL than about the other four scripting languages combined.

VimL is absolutely dreadful. You can write plugins in Python or Ruby though with just a little VimL boilerplate to connect it, but that makes your plugins less portable. To me Vim is more about modal editing and extensibility second. If I was mostly concerned about extensibility I’d be using Emacs. That said I’ve been reading a lot blogs by Vim users who jumped ship to Emacs and kept modal editing using Evil mode and managed to port majority of their setup using native Emacs plugins or writing custom scripts.

But yes, VimL is shit. There is no denying that.

Richard wrote:

Vim may well be more powerful than other editors, but you should argue that by demonstrating how it’s powerful, not simply pointing to products in other fields that are hard to use.

I agree. I guess I didn’t want to repeat myself in this particular post, because I wrote a lengthy essay doing exactly that a few days earlier: pointing out good things in vim. You can read it here.

Reply  |  Quote
]]>
By: Richard http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-63544 Fri, 07 Feb 2014 21:04:00 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-63544

Yes, almost everyone agrees which binding to use to save, cut, copy, paste and undo but beyond that few editors agree. What is the standard key for redo? Quit without saving? Open a new tab? Search and replace? Few editors agree on these

On the Mac, they mostly do. Command-shift-Z. Command-W, then command-delete. Command-T. Command-option-F. These seem pretty standard to me, outside of the Emacs/Vim world.

It is just that most vim users don’t want it to be “user friendly”. This is not the selling point of the editor.

Seatbelts and radios are not the selling point of a Ford truck, but that doesn’t mean it doesn’t have them. Even big trucks today (the Hole Hawgs of the automotive world) have amenities that only luxury cars had 10 years ago.

Have the Vim developers truly been unable to improve the basic usability of Vim without sacrificing power? Every other category of software in the past few decades seems to have gotten both far more powerful and more usable. It’s hard to believe that the pinnacle of text editing power cannot have a user interface any better than Vim.

Even the Milwaukee Tool Company knew that they didn’t have the final word on putting holes in things: their new Super Hawg is not only more ergonomic and attractive than the old Hole Hawg (they brag about its “Comfort grip”), but twice as powerful.

Do people really think we use vim just to be cool, retro hipsters? Would we willingly subject ourselves to a “clunky usability nightmare” just for the geek cred?

I assume that many do. It would be shocking if they didn’t. People do far more impractical things for street cred every day.

In the hands of an experienced user, Vim is extremely powerful and flexible. It can do things other editors will never be capable of (except maybe Emacs but we’re not talking about that right now).

This article reads like an apology for Vim’s usability, but you never explained exactly how other editors are less powerful. Aren’t all text editors with customizable keybindings and a (Turing-complete) scripting language roughly equal in power? Is VimL better than Elisp, REXX, Tcl, or Lua? Not that I can tell: people who use VimL always seem to be complaining about how horrible it is as a language. In fact, even though I know relatively few Vim users, I’ve heard more complaints about VimL than about the other four scripting languages combined. Vim is more famous for being hard to use than for being extensible.

Ed is even harder to use than Vim. Does that make it even more powerful? Or could it be that “power/usability” is not simply a one-dimensional scale, and that lack of one does not necessarily imply an excess of the other? Vim may well be more powerful than other editors, but you should argue that by demonstrating how it’s powerful, not simply pointing to products in other fields that are hard to use. People who aren’t already Vim advocates aren’t going to believe that text editing has the same inherent complexity as a carrier-capable military VTOL jet.

Reply  |  Quote
]]>
By: Branko Vukelic http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-25961 Thu, 17 Jan 2013 14:01:28 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-25961

I’ve recently switched from Vim to SublimeText2, and I think I understand why people are raving about it. It does away with the steep learning curve, yet it is also a powertool, unlike most glorified Notepads out there. ST2 is highly configurable, and extensible, it has quite a few advanced editing techniques, and the only thing I’m missing are Vim’s jump-to-last-edit, spelling, and movement commands. On the other hand, I find that block editing in ST2 is even better than in Vim. Anyway, ST2 is quite young as a product, but I’m sure it will mature into something comparable to both Vim and Emacs with time.

Reply  |  Quote
]]>
By: JuEeHa http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23109 Sun, 09 Sep 2012 10:47:26 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23109

Hello from consoleland! My text editor history is probably bit strange. I started with notepad, then moved to edit, then notepad++, then in linux to nano. I tried vim but found it bit too intimitading but later after I had mastered ed I tried vi (not vim) and I liked it very much. I still use ed but I am mostly vi user now. I kinda dislike vim for the bloat it has. Vi on the other hand is light and powerful tool that I just love. Still my ideal editor would be a bit more like plan9 sam. It is bit more flexible with the mouse controll but it doesn’t run that well with no devdraw/devdraw emulation under x11.

Reply  |  Quote
]]>
By: vim user http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23104 Sat, 08 Sep 2012 20:20:27 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23104

I’m not sure if vim really has such a steep learning curve. If you use vimtutor, you’ll have a pretty good start. Once you have worked throught the tutorial, you should know how to edit text. The next step is then to learn how to edit text efficiently. This will take time. But that’s pretty much the same with other editors. You have to discover new key-combos for yourself. And with vim you can easily look up these combos in the help pages.

I guess a lot of people learn to use programs through trial and error (which also applies to me sometimes). Partly because reading a manual is boring and partly because some things can easily be guessed. You can’t do that with Vim. You need a different approach.

One such approach is vimtutor. And because vimtutor is actually an interactive tutorial, it is fun to go through it. If people think Vim is too complicated, let them try vimtutor and they may understand that vim isn’t just an old and weird text editor but has actually some good ideas behind it.

And if you are an IDE-guy you can use plugins to add the features you need.

Reply  |  Quote
]]>
By: Mitlik http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23073 Fri, 07 Sep 2012 03:24:57 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23073

I am still trying to learn Vim, because of your recent series of posts on why and how to use Vim. What little I have learned from the tutor and the help documentation is really powerful. So I am happy to learn to ride this “hawg” and learn more quirks. Thanks for all the insight.

Reply  |  Quote
]]>
By: Craig A. Betts http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23065 Thu, 06 Sep 2012 03:36:09 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23065

I can still clearly remember being introduced to vi back in 1998 when I first took a job in IT as a programmer. I was initially a die-hard emacs/notepad user. Cut-n-paste worked like it did on just about every platfrom I used prior. I was introduced to vi by a system administrator. First impression . . . I hated it! It wasn’t until I became a sysadmin myself that I would learn to appreciate the hidden power buried deep in vi. Booting UNIX systems in single-user mode only left the admin with a small choice of editors, usually vi or ed. Naturally, I learned vi as a survival tactic. Later, I bought the vi command reference coffee mug and grasped the power of a modal editor! I can move text around so much easier in vi than I ever could with a commercial app like Word. Granted, vi is not for publishing or typesetting. It is a good old fashioned text editor, but a damn good one. Unfortunately, the power can not be seen with a simple test drive.

Reply  |  Quote
]]>
By: Shrutarshi Basu http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23063 Wed, 05 Sep 2012 18:44:04 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23063

@ Luke Maciak:

I remember that there used to be specialized keyboards for programing languages. They’d have characters for whatever special symbols that the language used for construct. Case in point are the Lisp Keyboards. Today for example, what’s the point of having a numpad on keyboards? And function keys go unused. Why not use those keys for programmer functions (like stepping through a debugger)? Of course, a lot of this could be done in software but it would be interesting to see what we could do if we moved away having the same keyboard layout for everyone. Ergonomic keyboards and mice are a step in the right direction though. A lot of people in my lab use the Kinesis Advantage keyboard and various trackballs.

Reply  |  Quote
]]>
By: Luke Maciak http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23059 Wed, 05 Sep 2012 16:45:14 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23059

@ Shrutarshi Basu:

Interesting. What would you consider “pro-programming” hardware though? I mean for me a programming workstation involves:

– A high-end fast workstation with a lot of memory
– Dual monitor setup
– A comfortable mouse and a keyboard with an ergonomic design

I mean, everything else is just software.

Oh, and nice blog btw. Subscribed.

@ MrJones2015:

That’s a good point. I have no clue what I’m talking about most of the time. :)

@ Alex Reinisch:

Yeah, I love that attitude “What? I need to learn? Fuck that shit! LOL!”

Granted, I do see valid reasons someone might be hesitant to make the plunge. They are the same reasons why I’m hesitant to switch to say “DVORAK” keybord layout. Because it fucks with your muscle memory and learned habits, and will make you slow for a while, before you will make you fast.

So that is one valid reason why someone might not want to get into Vim or Emacs. :P

Reply  |  Quote
]]>
By: Alex Reinisch http://www.terminally-incoherent.com/blog/2012/09/05/vim-is-a-usability-nightmare/#comment-23057 Wed, 05 Sep 2012 16:19:41 +0000 http://www.terminally-incoherent.com/blog/?p=12598#comment-23057

Dammit, Luke. Stop adding fuel to my vim evangelism fire. I’ve already pissed off my friends with this enough. They just won’t see the light. ha.

Best response I’ve gotten to saying I like Vim: “You have to learn how to use a text editor. …that’s not for me.” ~JK

Reply  |  Quote
]]>