カーソルが画面の中央にあり、下にスクロールすると、カーソルが画面の上に移動します。私はそれをしたくありません。
画面上のカーソルの位置を変更せずにスクロールするにはどうすればよいですか?
回答の後に追加されたソリューション:
noremap <C-k> 14j14<C-e>
noremap <C-l> 14k14<C-y>
カーソルが画面の中央にあり、下にスクロールすると、カーソルが画面の上に移動します。私はそれをしたくありません。
画面上のカーソルの位置を変更せずにスクロールするにはどうすればよいですか?
回答の後に追加されたソリューション:
noremap <C-k> 14j14<C-e>
noremap <C-l> 14k14<C-y>
考えられる方法は 2 つあります。ctrl-Eおよびctrl-Yウィンドウに対するカーソルの位置を移動せずにバッファをスクロールします。それがあなたの望みだと思います。また、大きな数値に設定すると、移動キーで -や-とscrolloff
同じ効果が得られます。ただし、設定すると、カーソルをウィンドウに対して垂直に移動するのが難しくなります。( のようなものを使用します。は の省略形です。)ctrlEctrlYscrolloff
:set so=999
so
scrolloff
:help 'scrolloff'
:help scrolling
ctrl-Dそしてctrl-Uはあなたが望むものです。
ctrl-Dと同じ効果があります14j14<C-e>
(数値 14 はハードコードされておらず、移動量は画面の実際のサイズによって異なります): カーソルをテキスト内で数行下に移動しますが、カーソルはテキストの中央に留まります。画面。
同様にctrl-Uのように動作し14k14<C-y>
ます。
補遺: 画面に 30 行ある場合、2 つの行はまったく同じです。
カーソルとビューポートの両方を画面内の任意の場所に動かしたい場合は、両方を一度に実行できるようにいくつかのカスタム キー バインドを設定する必要があります。
そのような:
:nnoremap <C-M-u> j<C-e>
これにより、押すたびにカーソルが下に移動し ( j
)、ビューポートが移動します ( ) (通常モードのみ)。Ctrl-e
Ctrl-Alt-u
.vimrc でこのマッピングを試してください
map <ScrollWheelUp> 5<C-Y>
map <ScrollWheelDown> 5<C-E>