web-dev-qa-db-ja.com

`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内のカーソル位置が突然移動します。

49
user001

私は多くの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
29
Gilles Quenot

マウスのサポートはデフォルトで無効になっているため、何かが有効になっています。おそらくあなたのset mouse=が失敗するのは、電源がオンになる前に実行されているためです。私はあなたのvimrcの残りの部分、そしておそらくシステム全体のvimrc(/etc/vim/vimrcは標準の場所です)。

最後の手段として、この醜いハックを行うことができます。これにより、エディターを制御する前に、コマンドを最後に実行するものの1つとして実行できます。

autocmd BufEnter * set mouse=
24
Patrick

私は、Fedora Server 25ホストのOS X "Terminal"アプリでこれに遭遇しました。私はこれを私の.vimrcでこれで永久に解決しました:

set mouse=
set ttymouse=

これで、ターミナルのスクロールバックで、以前のbash履歴までマウスでスクロールできます。

9
Robpol86

新しいVimのマウスに対する感受性について、あなたとほとんど同じ不満がありました。 set mouse=""を使用しても、私にはできませんでした。

set mouse=cファイルの末尾近くに.vimrc(引用符なし)があります。 "PuTTY"を使って仕事中の私の(ハァッ!)Windowsマシンからsshでログインする場合を除いて、Vimがマウスを使用できないように思われました。 PuTTYに貼り付けるには、Shift-中央ボタンを使用する必要があります。

2018-03-30編集:不要なマウス効果を取り除くために、vimのリモート(CentOS 6.7)インスタンスで:mouse=(引用符も何も)を使用し始めました。

4
Bruce Ediger

Debianストレッチでは、いくつかの中心的な設定がロードされますafterロード/etc/vim/vimrcおよび/etc/vim/vimrc.local/etc/vim/vimrcを参照してください。

...
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
"let g:skip_defaults_vim = 1
...

このファイルのデフォルトは/usr/share/vim/vim80/defaults.vimです。 /usr/share/...の下の中央ファイルを変更すると、

  • 悪の
  • 非永続的で、更新後に元に戻ります

上記の行をコメント解除してskip_defaults_vimを設定すると、そのファイルで設定されている他のすべてのオプションが削除されます。不要なオプションを削除するには、以下を/etc/vimrc.localに入力します。

" /etc/vim/vimrc.local
" honor skip_defaults_vim from the master /etc/vim/vimrc file
if ! exists('skip_defaults_vim')
  " Source the defaults file manually from here
  source $VIMRUNTIME/defaults.vim
endif

" avoid loading the defaults twice
let g:skip_defaults_vim = 1

" revert any unwanted changes the defaults file introduced
set mouse=

" set any other options you want centrally on your system
"set paste " uncomment if you want paste insert enabled
"...

これにより、defaults.vimが手動で読み込まれ、自動読み込みがオフになるため、ユーザーアカウントごとに.vimrcを作成しなくても、不要な設定を元に戻すことができます。

3
Holger Böhnke

これをあなたの.vimrcに追加してください:

if has("gui_running")
    "echo "yes, we have a GUI"
    set mouse=a
else
    "echo "Boring old console"
    set mouse=
endif
3
ipirlo

質問にある程度関連しています。neovim(nvim)を使用している場合は、set mouse=あなたの~/.config/nvim/init.vim構成ファイル。

ディレクトリが存在しない場合は、mkdir -p ~/.config/nvim/

0
Marcelo Lacerda