Hacker News new | past | comments | ask | show | jobs | submit login
My new favorite vim/tmux bug (daniellesucher.com)
198 points by luu on April 24, 2014 | hide | past | favorite | 34 comments

I could read bug stories/refactoring stories all day. It's the programmer's version of This Old House.

Mark Russinovich's "the case of the unexplained" [0] blog posts used to be one of my favourite read on the entire web.

[0] http://blogs.technet.com/b/markrussinovich/archive/2012/07/0...

I've always felt there should be a conference for bug hunting.

All talks about bugs, how they were solved, dead ends attempted, tools/techniques used to diagnose, etc.

Would be really useful to see how other people approach debugging and you'd probably get to learn about lots of tools you didn't know existed.

That would be fantastic. I imagine a fun format where you are presented with the bug, and given some appropriate, but short, length of time to try and diagnose it. (Let's say, 15 minutes to an hour.) Then, the presenter polls everyone to see if anyone figured it out, and explains the actual bug and the fix in an actual presentation.

Then I probably shouldn't introduce you to The Daily WTF[0]


Those are stories about what idiots other people are. Not as interesting, and predictable after a while.

Good debugging stories, like the OP, are mysteries.

Not a VIM bug, not a Tmux bug. Not even a "pivotal/tmux-config".

By the way, as I understand, one shouldn't fiddle with &t_* options, unless strictly necessary. It's supposed to be a Bad Idea ® because it makes things less portable.

(Although I'm also guilty of this, changing the cursor color in insert mode is just too cool for me to resist).

I agree. Both vim and tmux did exactly what they were told to do.

Every bug in existence is a story of different software components doing exactly what they were told to.

The explanation is wrong. In Normal Mode, 'te' is takes the cursor to the character before the next occurance of 'e' on the line. E.g.

  Test Words Go Here
'te' would take the cursor to here:

  Test Words Got Here

Oh, nice catch! I use t as a motion all the time, but that still slipped by. Just updated the post with the correction, thanks!

I wish I was smart enough to document things as thoroughly as she did while debugging this problem. The solution was simple and wouldn't really have been a very exciting read, but since she was smart enough to document the process she was able to produce a really meaningful post that shows off the fruits of great documentation and sleuth work.

They could have saved some time by trying to reproduce the bug while running `vim -u NONE`.

The first thing I do when I encounter a problem in vim is to run it a) without plugins, b) without my .vimrc, and c) with neither plugins nor rc.

exactly; in the emacs community, when somebody is chasing down a weird bug, they get asked to run emacs with the flags that disable all the startup customization as the very first thing, because 90% of the time, its a problem with some interaction in the user's (byzantine) ~/.emacs.d

Awesome, this will be helpful in tracking down some weird behavior I'm currently seeing in vim...

I didn't know that was a thing! Sweet, thanks - this'll totally be useful in the future!

"Verify all assumptions"

I swear I should just have a sticky with that on my monitor. Would really save me a lot of time.

I got stuck verifying my assumption that the sticky was real.

AKA why I hate unix and the developers responsible for most of its tools with a seething passion, condensed down into a single webpage.

Anyone who reads the part where t_F9 actually means F19 and doesn't get completely enraged at the person who made that decision never gets to work for me...

I like UNIX, vim and tmux and I agree with you. They're not 21st century tools, but for a lot of tasks, they're the best we've got.

The tools in question, and the OS in question, bear little to no resemblance to unix or its tools. Blaming unix for the monstrosities that it inadvertently spawned isn't really fair.

Hrm, it seems to me that this is just a byproduct of not following the full installation instructions of the plugin located at: https://github.com/pivotal/tmux-config

This reminds me of the stories about TECO, where programmers of the time would play a game "guess what happens when you type in your name in command mode".

I love how excited he was when he got to take his bug friend home :)

Danielle is a she not a he

More respect to her she sounds like a cool person.

I don't know why this is being voted down i wasn't being sarcastic or anything.

I like her way of thinking and would probably get along with her if I were to meet her.

I love the enthusiasm.

This read like a tech version of a Scooby Doo episode.

A great mystery solved with a little symlink.


1. Fail to read a short README and install plugin properly.

2. Waste hours of your and other's time chasing the weird "bug" that's direct consequence of point 1.

3. Write a long pointless post where you don't even aknowledge your initial stupidity.

4. Get famous on the World Wide Web.

No fucking wonder why nobody RTFM anymore: failure is success!

She didn't do the install, she just encountered a pre-configured system that wasn't working properly. The documentation for vim and tmux is extensive. If you sit down to "RTFM", you're going to disappear for a week or two, and you probably won't even realise it when you read (and then forget) the bit that you actually needed.

Honestly, if you are not impressed by this piece of bug hunting, you are either an absolute genius, or someone without enough experience to appreciate just how difficult what she accomplished actually was (note the elegance of the solution - simply applying a symbolic link). I'm going to go with option 2, because I would already know who you are if it was option 1, but I don't, you're an anonymous internet 'nym.


No, I'm not impressed.

I'm not impressed because the "bug" she wasted so much time to hunt down is not a vim or tmux bug at all. Even with quotes around "bug".

It's someone, somewhere, failing to read the aforelinked 42 lines long README.

Nothing to write home about.

Was this particularly necessary?

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