disabling mouse support in `vim` in a `gnome-terminal` environment

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
38
down vote

favorite
10












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



























    up vote
    38
    down vote

    favorite
    10












    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

























      up vote
      38
      down vote

      favorite
      10









      up vote
      38
      down vote

      favorite
      10






      10





      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















      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.







      gnome vim mouse gnome-terminal






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Aug 2 '12 at 22:47

























      asked Aug 2 '12 at 1:04









      user001

      1,52231938




      1,52231938




















          6 Answers
          6






          active

          oldest

          votes

















          up vote
          27
          down vote













          I've found what cause this bad behavior with many linux flavors :



          /usr/share/vim/vim80/defaults.vim


          it's 'sourced' if there's no ~/.vimrc but even if you have a /etc/vimrc or such /etc file, so if you don't have one just create a blank one as suggested by @lgpasquale:



          [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc


          If you liked the other features (like syntax highlighting) that you got from defaults.vim, you can use this command rather the the previous one:



          [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vimnset mouse=" > ~/.vim/vimrc





          share|improve this answer


















          • 2




            Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
            – luckyrumo
            Nov 3 '16 at 20:57







          • 1




            You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
            – lgpasquale
            Dec 13 '16 at 22:28











          • This is the real solution for Fedora 25.
            – KamikazeCZ
            Dec 14 '16 at 12:24










          • I confirm this worked for me in Debian 8 in late 2017.
            – Criggie
            Jan 6 '17 at 8:30






          • 1




            @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
            – lgpasquale
            Jun 23 '17 at 15:08

















          up vote
          22
          down vote













          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
















          • 1




            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







          • 2




            @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


















          up vote
          5
          down vote













          I ran into this on my OS X "Terminal" app on a Fedora Server 25 host. I've permanently solved it with this in my .vimrc with:



          set mouse=
          set ttymouse=


          Now I can scroll up to my previous bash history in my terminal's scrollback with my mouse.






          share|improve this answer




















          • It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
            – Orphans
            Aug 22 '17 at 9:57










          • It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
            – Dmitry
            Sep 22 at 21:53

















          up vote
          4
          down vote













          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.



          2018-03-30 Edit: I have now started using: :mouse= (no quotes or anything) on some remote (CentOS 6.7) instances of vim to get rid of undesired mouse effects.






          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

















          up vote
          3
          down vote













          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


















          • 1




            This is of no relevance to the question asked.
            – GKFX
            Sep 24 '16 at 19:54










          • @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
            – hvd
            Jul 29 '17 at 6:23










          • @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
            – GKFX
            Jul 29 '17 at 13:15






          • 1




            @GKFX Fair point, and applies to other answers as well.
            – hvd
            Jul 29 '17 at 13:23

















          up vote
          0
          down vote













          Somewhat related to the question, if you are using neovim(nvim) you should put set mouse= in your ~/.config/nvim/init.vim configuration file.



          If the directory doesn't exist create it with mkdir -p ~/.config/nvim/






          share|improve this answer




















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f44513%2fdisabling-mouse-support-in-vim-in-a-gnome-terminal-environment%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            6 Answers
            6






            active

            oldest

            votes








            6 Answers
            6






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            27
            down vote













            I've found what cause this bad behavior with many linux flavors :



            /usr/share/vim/vim80/defaults.vim


            it's 'sourced' if there's no ~/.vimrc but even if you have a /etc/vimrc or such /etc file, so if you don't have one just create a blank one as suggested by @lgpasquale:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc


            If you liked the other features (like syntax highlighting) that you got from defaults.vim, you can use this command rather the the previous one:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vimnset mouse=" > ~/.vim/vimrc





            share|improve this answer


















            • 2




              Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
              – luckyrumo
              Nov 3 '16 at 20:57







            • 1




              You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
              – lgpasquale
              Dec 13 '16 at 22:28











            • This is the real solution for Fedora 25.
              – KamikazeCZ
              Dec 14 '16 at 12:24










            • I confirm this worked for me in Debian 8 in late 2017.
              – Criggie
              Jan 6 '17 at 8:30






            • 1




              @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
              – lgpasquale
              Jun 23 '17 at 15:08














            up vote
            27
            down vote













            I've found what cause this bad behavior with many linux flavors :



            /usr/share/vim/vim80/defaults.vim


            it's 'sourced' if there's no ~/.vimrc but even if you have a /etc/vimrc or such /etc file, so if you don't have one just create a blank one as suggested by @lgpasquale:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc


            If you liked the other features (like syntax highlighting) that you got from defaults.vim, you can use this command rather the the previous one:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vimnset mouse=" > ~/.vim/vimrc





            share|improve this answer


















            • 2




              Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
              – luckyrumo
              Nov 3 '16 at 20:57







            • 1




              You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
              – lgpasquale
              Dec 13 '16 at 22:28











            • This is the real solution for Fedora 25.
              – KamikazeCZ
              Dec 14 '16 at 12:24










            • I confirm this worked for me in Debian 8 in late 2017.
              – Criggie
              Jan 6 '17 at 8:30






            • 1




              @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
              – lgpasquale
              Jun 23 '17 at 15:08












            up vote
            27
            down vote










            up vote
            27
            down vote









            I've found what cause this bad behavior with many linux flavors :



            /usr/share/vim/vim80/defaults.vim


            it's 'sourced' if there's no ~/.vimrc but even if you have a /etc/vimrc or such /etc file, so if you don't have one just create a blank one as suggested by @lgpasquale:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc


            If you liked the other features (like syntax highlighting) that you got from defaults.vim, you can use this command rather the the previous one:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vimnset mouse=" > ~/.vim/vimrc





            share|improve this answer














            I've found what cause this bad behavior with many linux flavors :



            /usr/share/vim/vim80/defaults.vim


            it's 'sourced' if there's no ~/.vimrc but even if you have a /etc/vimrc or such /etc file, so if you don't have one just create a blank one as suggested by @lgpasquale:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || :> ~/.vim/vimrc


            If you liked the other features (like syntax highlighting) that you got from defaults.vim, you can use this command rather the the previous one:



            [[ -s ~/.vim/vimrc ]] && echo "aborted, file exists" || echo -e "source /usr/share/vim/vim80/defaults.vimnset mouse=" > ~/.vim/vimrc






            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Dec 6 at 13:28









            JigglyNaga

            3,648829




            3,648829










            answered Sep 21 '16 at 21:36









            Gilles Quenot

            15.9k13951




            15.9k13951







            • 2




              Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
              – luckyrumo
              Nov 3 '16 at 20:57







            • 1




              You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
              – lgpasquale
              Dec 13 '16 at 22:28











            • This is the real solution for Fedora 25.
              – KamikazeCZ
              Dec 14 '16 at 12:24










            • I confirm this worked for me in Debian 8 in late 2017.
              – Criggie
              Jan 6 '17 at 8:30






            • 1




              @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
              – lgpasquale
              Jun 23 '17 at 15:08












            • 2




              Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
              – luckyrumo
              Nov 3 '16 at 20:57







            • 1




              You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
              – lgpasquale
              Dec 13 '16 at 22:28











            • This is the real solution for Fedora 25.
              – KamikazeCZ
              Dec 14 '16 at 12:24










            • I confirm this worked for me in Debian 8 in late 2017.
              – Criggie
              Jan 6 '17 at 8:30






            • 1




              @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
              – lgpasquale
              Jun 23 '17 at 15:08







            2




            2




            Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
            – luckyrumo
            Nov 3 '16 at 20:57





            Thank you! Commenting out the line "mouse -a" in that file solved the issue for me (on Archlinux)
            – luckyrumo
            Nov 3 '16 at 20:57





            1




            1




            You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
            – lgpasquale
            Dec 13 '16 at 22:28





            You don't need to edit that file (which is part of vim-runtime on archlinux). As it's stated in that file, it is only loaded if no vimrc is found. That means that placing a .vimrc file in your home should solve the problem (it did for me). It doesn't need to contain anything, it can even be an empty file.
            – lgpasquale
            Dec 13 '16 at 22:28













            This is the real solution for Fedora 25.
            – KamikazeCZ
            Dec 14 '16 at 12:24




            This is the real solution for Fedora 25.
            – KamikazeCZ
            Dec 14 '16 at 12:24












            I confirm this worked for me in Debian 8 in late 2017.
            – Criggie
            Jan 6 '17 at 8:30




            I confirm this worked for me in Debian 8 in late 2017.
            – Criggie
            Jan 6 '17 at 8:30




            1




            1




            @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
            – lgpasquale
            Jun 23 '17 at 15:08




            @rlf In my opinion editing a file under /usr/share/ which is managed by your package manager is a bad idea. If you want to keep some of the options in defaults.vim, I would copy them to ~/.vimrc.
            – lgpasquale
            Jun 23 '17 at 15:08












            up vote
            22
            down vote













            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
















            • 1




              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







            • 2




              @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















            up vote
            22
            down vote













            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
















            • 1




              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







            • 2




              @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













            up vote
            22
            down vote










            up vote
            22
            down vote









            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












            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












            share|improve this answer



            share|improve this answer










            answered Aug 2 '12 at 1:19









            Patrick

            49.7k11126178




            49.7k11126178







            • 1




              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







            • 2




              @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













            • 1




              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







            • 2




              @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








            1




            1




            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





            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





            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




            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





            @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





            2




            2




            @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




            @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





            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











            up vote
            5
            down vote













            I ran into this on my OS X "Terminal" app on a Fedora Server 25 host. I've permanently solved it with this in my .vimrc with:



            set mouse=
            set ttymouse=


            Now I can scroll up to my previous bash history in my terminal's scrollback with my mouse.






            share|improve this answer




















            • It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
              – Orphans
              Aug 22 '17 at 9:57










            • It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
              – Dmitry
              Sep 22 at 21:53














            up vote
            5
            down vote













            I ran into this on my OS X "Terminal" app on a Fedora Server 25 host. I've permanently solved it with this in my .vimrc with:



            set mouse=
            set ttymouse=


            Now I can scroll up to my previous bash history in my terminal's scrollback with my mouse.






            share|improve this answer




















            • It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
              – Orphans
              Aug 22 '17 at 9:57










            • It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
              – Dmitry
              Sep 22 at 21:53












            up vote
            5
            down vote










            up vote
            5
            down vote









            I ran into this on my OS X "Terminal" app on a Fedora Server 25 host. I've permanently solved it with this in my .vimrc with:



            set mouse=
            set ttymouse=


            Now I can scroll up to my previous bash history in my terminal's scrollback with my mouse.






            share|improve this answer












            I ran into this on my OS X "Terminal" app on a Fedora Server 25 host. I've permanently solved it with this in my .vimrc with:



            set mouse=
            set ttymouse=


            Now I can scroll up to my previous bash history in my terminal's scrollback with my mouse.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Dec 19 '16 at 0:39









            Robpol86

            15112




            15112











            • It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
              – Orphans
              Aug 22 '17 at 9:57










            • It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
              – Dmitry
              Sep 22 at 21:53
















            • It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
              – Orphans
              Aug 22 '17 at 9:57










            • It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
              – Dmitry
              Sep 22 at 21:53















            It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
            – Orphans
            Aug 22 '17 at 9:57




            It is strongly recommended to create a vimrc.local in the same catalogue, because vimrc.local wont be updated if vim get updates
            – Orphans
            Aug 22 '17 at 9:57












            It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
            – Dmitry
            Sep 22 at 21:53




            It worked for me on Raspbian 9.4. Other answers did not solve undesired mouse behaviour when I log in via PUTTY.
            – Dmitry
            Sep 22 at 21:53










            up vote
            4
            down vote













            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.



            2018-03-30 Edit: I have now started using: :mouse= (no quotes or anything) on some remote (CentOS 6.7) instances of vim to get rid of undesired mouse effects.






            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














            up vote
            4
            down vote













            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.



            2018-03-30 Edit: I have now started using: :mouse= (no quotes or anything) on some remote (CentOS 6.7) instances of vim to get rid of undesired mouse effects.






            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












            up vote
            4
            down vote










            up vote
            4
            down vote









            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.



            2018-03-30 Edit: I have now started using: :mouse= (no quotes or anything) on some remote (CentOS 6.7) instances of vim to get rid of undesired mouse effects.






            share|improve this answer














            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.



            2018-03-30 Edit: I have now started using: :mouse= (no quotes or anything) on some remote (CentOS 6.7) instances of vim to get rid of undesired mouse effects.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Mar 30 at 15:12

























            answered Aug 2 '12 at 2:09









            Bruce Ediger

            34.6k566119




            34.6k566119











            • 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
















            • 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















            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




            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










            up vote
            3
            down vote













            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


















            • 1




              This is of no relevance to the question asked.
              – GKFX
              Sep 24 '16 at 19:54










            • @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
              – hvd
              Jul 29 '17 at 6:23










            • @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
              – GKFX
              Jul 29 '17 at 13:15






            • 1




              @GKFX Fair point, and applies to other answers as well.
              – hvd
              Jul 29 '17 at 13:23














            up vote
            3
            down vote













            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


















            • 1




              This is of no relevance to the question asked.
              – GKFX
              Sep 24 '16 at 19:54










            • @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
              – hvd
              Jul 29 '17 at 6:23










            • @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
              – GKFX
              Jul 29 '17 at 13:15






            • 1




              @GKFX Fair point, and applies to other answers as well.
              – hvd
              Jul 29 '17 at 13:23












            up vote
            3
            down vote










            up vote
            3
            down vote









            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 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














            share|improve this answer



            share|improve this answer








            edited Apr 8 '13 at 2:46









            Michael Mrozek

            60.4k29187208




            60.4k29187208










            answered Apr 8 '13 at 1:26









            ipirlo

            311




            311







            • 1




              This is of no relevance to the question asked.
              – GKFX
              Sep 24 '16 at 19:54










            • @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
              – hvd
              Jul 29 '17 at 6:23










            • @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
              – GKFX
              Jul 29 '17 at 13:15






            • 1




              @GKFX Fair point, and applies to other answers as well.
              – hvd
              Jul 29 '17 at 13:23












            • 1




              This is of no relevance to the question asked.
              – GKFX
              Sep 24 '16 at 19:54










            • @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
              – hvd
              Jul 29 '17 at 6:23










            • @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
              – GKFX
              Jul 29 '17 at 13:15






            • 1




              @GKFX Fair point, and applies to other answers as well.
              – hvd
              Jul 29 '17 at 13:23







            1




            1




            This is of no relevance to the question asked.
            – GKFX
            Sep 24 '16 at 19:54




            This is of no relevance to the question asked.
            – GKFX
            Sep 24 '16 at 19:54












            @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
            – hvd
            Jul 29 '17 at 6:23




            @GKFX Are you sure? It looks relevant to me. Note that has("gui_running") is 0 in a terminal environment. This answer, unlike the others, takes extra effort to only disable the mouse in a terminal environment, which the question asks, while leaving it enabled in gvim.
            – hvd
            Jul 29 '17 at 6:23












            @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
            – GKFX
            Jul 29 '17 at 13:15




            @hvd I worded my comment a bit harshly; I apologize. However, this answer just puts an if block around what the OP had already tried, so it's unlikely to be helpful.
            – GKFX
            Jul 29 '17 at 13:15




            1




            1




            @GKFX Fair point, and applies to other answers as well.
            – hvd
            Jul 29 '17 at 13:23




            @GKFX Fair point, and applies to other answers as well.
            – hvd
            Jul 29 '17 at 13:23










            up vote
            0
            down vote













            Somewhat related to the question, if you are using neovim(nvim) you should put set mouse= in your ~/.config/nvim/init.vim configuration file.



            If the directory doesn't exist create it with mkdir -p ~/.config/nvim/






            share|improve this answer
























              up vote
              0
              down vote













              Somewhat related to the question, if you are using neovim(nvim) you should put set mouse= in your ~/.config/nvim/init.vim configuration file.



              If the directory doesn't exist create it with mkdir -p ~/.config/nvim/






              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                Somewhat related to the question, if you are using neovim(nvim) you should put set mouse= in your ~/.config/nvim/init.vim configuration file.



                If the directory doesn't exist create it with mkdir -p ~/.config/nvim/






                share|improve this answer












                Somewhat related to the question, if you are using neovim(nvim) you should put set mouse= in your ~/.config/nvim/init.vim configuration file.



                If the directory doesn't exist create it with mkdir -p ~/.config/nvim/







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 26 at 14:29









                Marcelo Lacerda

                1011




                1011



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f44513%2fdisabling-mouse-support-in-vim-in-a-gnome-terminal-environment%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown






                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Bahrain

                    Postfix configuration issue with fips on centos 7; mailgun relay