According to the vim help, e.g. :h <ScrollWheelLeft>, vim recognizes mouse wheel left and mouse wheel right "keys", for scrolling unwrapped buffers left and right. This is good as I have a mouse that does this, and the macbook touchpad is also presumably excellent for this.

But Terminal.app does not support this (even with MouseTerm plugin), and neither does iTerm2 nor other state-of-the-art (heh) terminals like PuTTY.

They seem to ignore the mouse left/right scroll events and only really ever cared about scrolling up and down. In fact, PuTTY has some issues and I had to make my own fixes to it to get it to stop sending ridiculous escape sequences for the scroll events.

Are there any terminal programs that support mouse wheel left/right? What would their standardized escape codes be? Or, more practically, what would be the codes that Vim is looking for? (As far as I am aware it's not possible to actually check the escape code that are not overridden, as Vim just reports "Key code not set")

Is this feature only possible to use from a GUI version of vim?

  • Did you read :h scroll-mouse-wheel? Did you notice all the may in the text? Or the dependency on X? Did you try what is described in :h xterm-mouse-wheel? Did you consult the documentation of Terminal.app and iTerm.app? – romainl May 28 '13 at 5:33

My solution for the Macbook is BetterTouchTool, as it allows scripting modifier key + two finger scroll to fire off keys. I am really sad, though, that there's no option for hooking horizontal two finger scroll.

Obviously something very similar can be done on Windows for PuTTY. In my case the Logitech mouse drivers would be good for binding the mouse left right "buttons". My mouse at work doesnt tilt the wheel so the only option is something that allows for sending keys on modifier+scroll.

I don't think I'll actually really use this though. Better to use the keys.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.