37

カーソルが画面の中央にあり、下にスクロールすると、カーソルが画面の上に移動します。私はそれをしたくありません。

画面上のカーソルの位置を変更せずにスクロールするにはどうすればよいですか?

回答の後に追加されたソリューション:

noremap <C-k> 14j14<C-e>
noremap <C-l> 14k14<C-y>
4

6 に答える 6

44

考えられる方法は 2 つあります。ctrl-Eおよびctrl-Yウィンドウに対するカーソルの位置を移動せずにバッファをスクロールします。それがあなたの望みだと思います。また、大きな数値に設定すると、移動キーで -や-とscrolloff同じ効果が得られます。ただし、設定すると、カーソルをウィンドウに対して垂直に移動するのが難しくなります。( のようなものを使用します。は の省略形です。)ctrlEctrlYscrolloff:set so=999soscrolloff

:help 'scrolloff'
:help scrolling
于 2010-08-17T15:05:48.567 に答える
11

ctrl-Dそしてctrl-Uはあなたが望むものです。

ctrl-Dと同じ効果があります14j14<C-e>(数値 14 はハードコードされておらず、移動量は画面の実際のサイズによって異なります): カーソルをテキスト内で数行下に移動しますが、カーソルはテキストの中央に留まります。画面。

同様にctrl-Uのように動作し14k14<C-y>ます。

補遺: 画面に 30 行ある場合、2 つの行はまったく同じです。

于 2012-11-22T18:55:50.783 に答える
9

カーソルとビューポートの両方を画面内の任意の場所に動かしたい場合は、両方を一度に実行できるようにいくつかのカスタム キー バインドを設定する必要があります。

そのような:

:nnoremap <C-M-u> j<C-e>

これにより、押すたびにカーソルが下に移動し ( j)、ビューポートが移動します ( ) (通常モードのみ)。Ctrl-eCtrl-Alt-u

于 2010-08-17T14:59:58.357 に答える
1

.vimrc でこのマッピングを試してください

map <ScrollWheelUp>   5<C-Y>
map <ScrollWheelDown> 5<C-E>
于 2013-03-30T17:54:58.837 に答える