Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Edit: The problem of an enabled mouse in vim appears to be specific to gnome-terminal (version 3.4.1.1-1; I am using gnome 3 fallback mode). If I run xterm, mouse support in vim is disabled by default, and I have the option to enable it (:set mouse=a, which I never do) and disable it (:set mouse=). In contrast, when I run vim in gnome-terminal, mouse support is enabled by default and it is not possible to disable it (:set mouse= has no effect). Is there a solution short of changing terminal emulator?


I want to completely disable mouse support in vim. I am running vim version 2:7.3.547-3 through gnome-terminal version 3.4.1.1-1. The following commands, whether executed directly in vim or added to my .vimrc file, fail to disable mouse support:

set mouse =
set mouse =""

Based on reading the vim manual and posts online, one or both of these commands should work. In particular, the vim manual states the following

'mouse'                 string  (default "", "a" for GUI, MS-DOS and Win32)
    The mouse can be enabled for different modes:
            n       Normal mode
            v       Visual mode
            i       Insert mode
            c       Command-line mode
            h       all previous modes when editing a help file
            a       all previous modes
            r       for |hit-enter| and |more-prompt| prompt 
    Normally you would enable the mouse in all four modes with: >
            :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

I am using a laptop and each time my hand brushes the trackpad, my cursor position in vim moves abruptly.

share|improve this question
add comment

3 Answers 3

mouse support is disabled by default, so something is turning it on. Likely the reason your set mouse= is failing is because it's running before whatever is turning it on. I'd look through the rest of your vimrc, and possibly the system wide vimrc (/etc/vim/vimrc is a standard location).

As a last resort, you can do this really ugly hack which will cause the command to run as one of the last things done before giving you control of the editor.

autocmd BufEnter * set mouse=
share|improve this answer
    
My /etc/vim/vimrc file is pretty bare (runtime! debian.vim and a conditional if filereadable("/etc/vim/vimrc.local") ; source /etc/vim/vimrc.local; endif). The /etc/vim/vimrc.local file does not exist on my system. My ~/.vimrc file only has a few lines that I have added manually. An strace of vim reveals that it checks the following locations for config files: /usr/share/vim/vimrc, /etc/vim/vimrc.local (ENOENT), and /home/user/.vimrc. (Why do I receive the ENOENT error; doesn't the if statement prevent attempts to open this non-existent file?). –  user001 Aug 2 '12 at 1:38
    
Also, if I type :set mouse= directly in vim, shouldn't this override any settings from config files? Why would direct execution of this statement within vim not disable mouse control? –  user001 Aug 2 '12 at 1:40
1  
@user001 You see the ENOENT as vim has to check if the file exists. This is typically done by calling stat which returns ENOENT if the file does not exist. –  Ulrich Dangel Aug 2 '12 at 5:29
1  
@user001 ah, the fact that it doesnt work when typed into the current session is critical info. Based on this, I'm not sure it's vim that's the problem. Maybe gnome-terminal is doing something horrible. Can you try a different terminal emulator? –  Patrick Aug 2 '12 at 12:30
    
Hi, good suggestion. I tried in xterm and had no problem with mouse activation. I could reproduce the problem by typing :set mouse=a in vim running in xterm (and reverse it by typing :set mouse=). Any idea how to troubleshoot the gnome-terminal glitch? Should I start a new thread? Thanks. –  user001 Aug 2 '12 at 12:54
show 2 more comments

I had pretty much the same complaints as you about the newer Vim's sensitivity to the mouse. Using set mouse="" did not do it for me, either.

I have set mouse=c (no quotes) close to the bottom of my .vimrc file. That seemed to keep Vim from using the mouse, except when using "PuTTY" to ssh in from my (ugh!) Windows machine at work. I have to use shift-middle-button to paste in PuTTY.

share|improve this answer
    
Hi, thanks for the suggestion. I added this to my .vimrc file and tried executing it interactively (:set mouse=c), but neither had an effect in my case. –  user001 Aug 2 '12 at 2:14
add comment

Add this to your .vimrc:

if has("gui_running")
    "echo "yes, we have a GUI"
    set mouse=a
else
    "echo "Boring old console"
    set mouse=
endif
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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