編集:vim
で有効になっているマウスの問題は、gnome-terminal
(バージョン3.4.1.1-1; gnome 3フォールバックモードを使用しています)に固有のようです。 xterm
を実行すると、vim
でのマウスサポートはデフォルトで無効になり、有効にして(:set mouse=a
、これを行うことはありません)、無効にする(:set mouse=
)。対照的に、vim
をgnome-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内のカーソル位置が突然移動します。
私は多くの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
マウスのサポートはデフォルトで無効になっているため、何かが有効になっています。おそらくあなたのset mouse=
が失敗するのは、電源がオンになる前に実行されているためです。私はあなたのvimrcの残りの部分、そしておそらくシステム全体のvimrc(/etc/vim/vimrc
は標準の場所です)。
最後の手段として、この醜いハックを行うことができます。これにより、エディターを制御する前に、コマンドを最後に実行するものの1つとして実行できます。
autocmd BufEnter * set mouse=
私は、Fedora Server 25ホストのOS X "Terminal"アプリでこれに遭遇しました。私はこれを私の.vimrcでこれで永久に解決しました:
set mouse=
set ttymouse=
これで、ターミナルのスクロールバックで、以前のbash履歴までマウスでスクロールできます。
新しいVimのマウスに対する感受性について、あなたとほとんど同じ不満がありました。 set mouse=""
を使用しても、私にはできませんでした。
set mouse=c
ファイルの末尾近くに.vimrc
(引用符なし)があります。 "PuTTY"を使って仕事中の私の(ハァッ!)Windowsマシンからsshでログインする場合を除いて、Vimがマウスを使用できないように思われました。 PuTTYに貼り付けるには、Shift-中央ボタンを使用する必要があります。
2018-03-30編集:不要なマウス効果を取り除くために、vimのリモート(CentOS 6.7)インスタンスで:mouse=
(引用符も何も)を使用し始めました。
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
を作成しなくても、不要な設定を元に戻すことができます。
これをあなたの.vimrc
に追加してください:
if has("gui_running")
"echo "yes, we have a GUI"
set mouse=a
else
"echo "Boring old console"
set mouse=
endif
質問にある程度関連しています。neovim(nvim)を使用している場合は、set mouse=
あなたの~/.config/nvim/init.vim
構成ファイル。
ディレクトリが存在しない場合は、mkdir -p ~/.config/nvim/