Vim – Weird Insertion from Vim on Mouse Click

puttyvim

I'm using putty (on windows 7) to connect to shell and Vim as editor. I also have mouse=a option enabled in Vim, but I get some strange behavior (such as random insertions of characters and/or linebreaks) when I click to the right side of the Vim window (let's say it's like 70%+ of the screen width area where it gets weird). I'm slowly getting used to such behavior, but I'd really like to know if I could somehow fix this.

Best Answer

PuTTY sends mouse events using an xterm protocol that dates back all the way to X10 in the mid-eighties. This encodes the mouse coordinates with a single byte each for row and column, whereby 32 (the ASCII code for a space character) is added. This allows for coordinates up to 223 (which is 255 - 32).

Unfortunately that encoding does not adhere to the applicable standards for terminal control sequences, and the range can effectively be further restricted to 95 (i.e. 127 - 32) if applications don't make special allowances for it. In particular, if an application performs UTF-8 decoding before control sequence parsing, mouse coordinates beyond 95 just end up being treated as invalid UTF-8.

During the past year, several attempts have been made to address this issue in xterm. The best one of those is the so-called SGR 1006 mode added in patch #277, which uses a standard-compliant control sequence with unlimited coordinates. Support for this will slowly permeate to other terminal emulators and applications.

Related Question