在“gnome-terminal”环境中禁用“vim”中的鼠标支持

在“gnome-terminal”环境中禁用“vim”中的鼠标支持

编辑:启用鼠标的问题vim似乎特定于gnome-terminal(版本 3.4.1.1-1;我正在使用 gnome 3 后备模式)。如果我运行xterm,默认情况下禁用鼠标支持vim,并且我可以选择启用它(:set mouse=a我从来没有这样做)和禁用它(:set mouse=)。相反,当我运行时vimgnome-terminal默认情况下启用鼠标支持,并且无法禁用它(:set mouse=没有效果)。有没有除了更换终端模拟器之外的解决方案?


我想完全禁用鼠标支持vim。我正在运行vim版本 2:7.3.547-3 到gnome-terminal版本 3.4.1.1-1。以下命令,无论是直接在 vim 中执行还是添加到我的.vimrc文件中,都无法禁用鼠标支持:

set mouse =
set mouse =""

根据阅读 vim 手册和在线帖子,这些命令中的一个或两个应该可以工作。特别是,vim手册指出了以下内容

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

我正在使用笔记本电脑,每次我的手刷过触控板时,vim 中的光标位置都会突然移动。

答案1

我发现了许多 Linux 风格导致这种不良行为的原因:

/usr/share/vim/vim80/defaults.vim # may be "vim81" depending on your vim version

如果没有,它就是“来源”的,~/.vimrc但即使您有一个/etc/vimrc或这样的/etc文件,所以如果您没有,只需按照@lgpasquale的建议创建一个空白文件:

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

如果您喜欢从 defaults.vim 获得的其他功能(例如语法突出显示),您可以使用此命令而不是前一个命令:

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

答案2

默认情况下禁用鼠标支持,因此某些东西正在将其打开。您失败的原因可能set mouse=是因为它在启动它之前就运行了。我会查看你的 vimrc 的其余部分,可能还有系统范围的 vimrc (/etc/vim/vimrc是标准位置)。

作为最后的手段,您可以执行这个非常丑陋的 hack,这将导致命令作为在您控制编辑器之前完成的最后操作之一运行。

autocmd BufEnter * set mouse=

答案3

我在 Fedora Server 25 主机上的 OS X“终端”应用程序上遇到了这个问题。我已经在 .vimrc 中永久解决了这个问题:

set mouse=
set ttymouse=

现在我可以用鼠标在终端的回滚中向上滚动到之前的 bash 历史记录。

答案4

我和你一样抱怨新版 Vim 对鼠标的敏感性。使用set mouse=""也不适合我。

set mouse=c我的文件底部附近有(没有引号) .vimrc。这似乎阻止了 Vim 使用鼠标,除非使用“PuTTY”从我的(呃!)Windows 机器上进行 ssh 工作。我必须使用 shift-middle-button 来粘贴到 PuTTY 中。

2018-03-30 编辑:我现在开始:mouse=在一些远程(CentOS 6.7)vim实例上使用:(没有引号或任何东西)来消除不需要的鼠标效果。

相关内容