スクロールホイールを使用する場合、カーソルではなく画面をスクロールします


18

私は端末でVimを使用しているので、スクロールホイールでのスクロールには\e[Aand \e[B構文(\e記号化\x1b、またはエスケープ)が使用されます。

ただし、Vimはカーソルを行の上または下に移動することでこれを解釈します。望ましい行動はということです画面が上に移動または下に、のようなものである<C-e><C-y>行います。

カーソルを同じ行に置いたままスクロールホイールを使用したときに画面を移動するようにVimに指示するにはどうすればよいですか?これは、すべての共通モード(挿入、通常、視覚選択)で機能するはずです。

例えば、私はすでに:nnoremap <esc>[A <C-e>(で<esc>挿入されたリテラルのエスケープ文字に置き換えて)試しましたCtrl+V Escが、これは無駄であることが判明しました。

Ubuntu 14.04でGNOMEを搭載したVim 7.4.52を使用しています。


質問をオペレーティングシステムまたはウィンドウ環境に限定できますか?
200_success

@ 200_successわかった、質問に環境を編集しました。
ドアノブ

この質問にも「端末」とタグ付けする必要があると思います。回答されたため編集できませんか?
bsmith89

回答:


12

@Doorknobがコメントで述べたように:set mouse=a、問題を修正します。


1
設定せずにこれを行う方法はありますmouse=aか?誤ってクリックして編集フローを台無しにしたくない。
wchargin

amouse=a用スタンドall(ないAPPEND)。from :help mouse「マウスはさまざまなモードで有効にできます...通常、4つのモードすべてでマウスを有効にするには、次のコマンドを使用します。:set mouse = a」(スクロールを有効にした-「クリックして行に移動」)
Fawix

2
このスレッドは古いものですが、set mouse=a偶発的なクリックなしでフローを台無しにし:map <LeftMouse> <nop>たい人のために、トリックを行います。
サニーしゃれ

0

あなたが望む行動は、私のvimで何が起こるかです。オン/オフを切り替える設定が見つかりません。たぶん:help scrollingscrolloff関与する可能性があります。

回避策としてマークの使用を検討することもできます。

  1. ma (マーク「a」を設定)
  2. 好きなように画面をスクロールします
  3. `a (「a」をマークするためにカーソルを送信します)

vimrc(vim -u NONE)をロードしなくても、この動作が発生します。これは、GNOMEを使用したUbuntu 14.04上のVim 7.4です。
ドアノブ

@Doorknobそして、.vimrc(ちょうどset mouse=a)なしでカーソルが移動する代わりにウィンドウが表示されます。 :help scrollingスクロール動作はプラットフォーム固有であると述べています。OSXのiterm2でvimを使用しています。
bsmith89

あぁ!:set mouse=a私のために問題を修正しました。それをあなたの答えに編集してください。それを受け入れます。ありがとう!
ドアノブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.