Enable mouse for scrolling only in Vim in iTerm (MacOSX)

34,973

Solution 1

You could use

:set mouse=nicr

It works only with mouse scroll as I've tested.

Solution 2

If you set mouse=a, you can still use Option-click to make iTerm do selection. Not ideal, but it's the best option I've found.

Solution 3

For Iterm2

Preference -> Advanced -> Mouse Tab, switch:

Scroll wheel sends arrow keys when in alternate screen mode

to:

Yes

Solution 4

I'm not sure about iTerm but this is achievable with Terminal.app.

  • Scrolling in Terminal.app:

http://ayaz.wordpress.com/2010/10/19/using-mouse-inside-vim-on-terminal-app/ (install SIMBL and MouseTerm)

  • Scrolling only:

    1. Go to terminal;
    2. Preference;
    3. 'Settings' Icon;
    4. 'Keyboard' Tab
    5. 'Mouse...' button;
    6. There under 'Send mouse events for:" uncheck "Left click", "Middle click", "Right click".

Done.

Share:
34,973

Related videos on Youtube

Jonah Braun
Author by

Jonah Braun

Updated on September 17, 2022

Comments

  • Jonah Braun
    Jonah Braun over 1 year

    I'd like to use the mouse in Vim only for scrolling (not to enable other Vim modes or otherwise interact with Vim). Using :set mouse=a seems to be an all or nothing operation, can this be altered? Alternatively can iTerm be made to only pass through scroll events and never click/drag events?

    Long Explanation: I use Vim in iTerm a lot and don't use the mouse. However, inertia scrolling with a trackpad is really nice and a great way to peruse large files. I can :set mouse=a and use the trackpad to scroll and it's great. Now when I click however vim enters visual mode and iTerm will not copy selected text. I would like to retain iTerms ability to select and copy text.

    I have thought about setting up Vim so that copying in vim will copy in Mac OS X (using pbcopy, I need to do this anyway). This will do the trick when editing local files, but most of the time I'm ssh'd somewhere and editing remote files.

  • Jonah Braun
    Jonah Braun over 12 years
    Not quite what I need as while it will scroll in vim, iTerm won't let me select text. I've :set mouse=i so that scroll works in insert mode and iTerm select in normal mode. Close enough, so I'm marking answered. Thanks for the idea!
  • Kazark
    Kazark over 11 years
    That looks like "set the mouse to be nicer" to me.
  • Kazark
    Kazark over 11 years
    This enables things other than scrolling.
  • Kazark
    Kazark over 11 years
    Moreover, that is already mentioned in the question.
  • John Whitley
    John Whitley about 11 years
    @JonahBraun, iTerm will mouse select with :set mouse=nicr if you hold down option while making the selection. See stackoverflow.com/questions/4608161/…
  • Zen
    Zen about 9 years
    this is the real workable answer.
  • Naguib Ihab
    Naguib Ihab almost 5 years
    Where do you write :set mouse=nicr?
  • sshine
    sshine about 3 years
    You can either write that every single time you start Vim, or you could write that in the file ~/.vimrc, but consider also :set mouse=a, as @MikeMorearty suggests below. This makes selection of text possible, too. (It goes into visual mode, which some may not like.)
  • sshine
    sshine about 3 years
    It certainly is.
  • cmrust
    cmrust about 3 years
    Enter vim > mouse wheel scrolls within vim only. Perfect, thanks!
  • miguno
    miguno about 2 years
    In my case you must set this iTerm config AND hold down Option when scrolling with the trackpad/the mouse wheel.