ここでは、一部のVMサーバーがDebian 9にアップグレードされました。
今すぐ使用すると、ssh
リモート端末間でコピーして貼り付けることはできません。
カーソルが移動してテキストを表示しているように見えますが、通常よりも面白くて他の方法ですが、Command C / Command Vを実行したりそのメニューにコピーして貼り付けたりすると、クリップボードに何もコピーされません。
また、Shiftと他のキーボードの組み合わせを使用してマウスを動かしてみましたが、肯定的な結果はありませんでした。
これは、OS / X、つまりSierraとEl CapitanとWindowsでもmobaXterm端末を使用して発生します。
この状況はvimのマウス認識によって引き起こされます。
Stack Overflowの他の質問に基づいてうまく機能しませんでし/etc/vim/vimrc.local
たset mouse="r"
。set mouse="v
set mouse=""
結局、同じファイルに設定を完了し、いくつかの成功を収めました。
しかし、常に100%はうまく機能しません。また何ができますか?
答え1
解決策:ローカルにmouse=a
変更mouse=r
してください.vimrc
。
/usr/share/vim/vim80/defaults.vim
許可されている答えが示すように、このオプションを設定する際の問題は、更新するたびに上書きされることです。久しぶりに検索して、ついに以下を見つけました。
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
ローカルソリューション(欠陥がある):
最初の回避策は、ローカルの.vimrcファイルを使用してその場所に設定することです。
したがって、ユーザーごとにローカルの.vimrc()を作成し、~/.vimrc
そこでオプションを設定できます。または、/etc/skel
新しく作成したすべてのユーザーに対して自動的に作成されるように、新しく作成します。
ただし、ローカルファイルを使用する場合は、.vimrc
すべてのオプションを設定する必要があります。ローカルファイルがあると全くロードされない.vimrc
からです!defaults.vim
ローカルファイルがない場合は、.vimrc
すべての設定が上書きされますdefaults.vim
。
グローバルソリューション(優先):
すべてのユーザーに対してデフォルトオプションをロードし、個人設定でデフォルトを追加またはオーバーライドするグローバル設定をしたいと思います。/etc/vim/vimrc.local
幸い、Debianにはput inオプションがあります/etc/vim/vimrc
。したがって、このファイルを作成し、デフォルト値をロードし、再ロードしないようにして(最後に)プライベートオプションを追加できます。
次のファイルを生成してください:/etc/vim/vimrc.local
" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.
" Load the defaults
source $VIMRUNTIME/defaults.vim
" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1
" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish
" Set the mouse mode to 'r'
if has('mouse')
set mouse=r
endif
($VIMRUNTIME
上記のコードスニペットで使用されている値はに似ています/usr/share/vim/vim80/defaults.vim
。)
「以前のコピー/貼り付けの動作」も有効にするには、ファイルの末尾に次の行を追加します。
" Toggle paste/nopaste automatically when copy/paste with right click in insert mode:
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
答え2
vimをマウス認識とは無関係にする1つの方法は、マウス関連の構成をコメントアウトすることです。
/usr/share/vim/vim80/defaults.vim
次のようにマウス関連の検出について注釈を付けました。
" In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
"if has('mouse')
" set mouse=r
"endif
(このvim設定ファイルでは、「コメントが始まります。)
この変更により、問題なく再コピーして貼り付けることができます。
私はコメントに同意します。プロファイルが保護または送信されない場合は、すべてのアップデートで上書きされるため、これは理想的なソリューションではありません。当時は、パッケージのバージョンまたは私が作業しているサーバー構成の詳細のためにのみ有効でした。だから私はこの答えをここに残して、最後の手段としてのみ使用してください。。
答え3
これmouse
このオプションの Vim ドキュメント説明する
Shiftキーを押し続けると、xtermのマウスボタン処理を引き続き使用できます。
答え4
多くの人が提案しましたが、コピー&ペーストはDebian 9のVimでのみ有効にできることが:set mouse=a
わかりました。:set mouse=r
頑張ってください!