vim を下の行より下にスクロールさせないようにする

vim を下の行より下にスクロールさせないようにする

vim でファイルの末尾を超えてスクロールできないようにするにはどうすればいいですか?

答え1

ヴィム実際には許可されませんスクロールファイルの末尾を越える(つまり、カーソルを最後の既存の行を超えて移動する)が、ショー最後の行より数行後ろに追加します。何かを見せます

申し訳ありませんが、無効にすることはできません。ただし、Vimのソースをダウンロードしたい場合(結局のところ、Vimはオープンソースです)と、フィドルそれに、存在しない行にネイティブに ~ を挿入します。何かを表示する必要があるためです。すべてのエディターがこれを行います。

誰かが示唆したように、この問題を回避する方法はありますが、それはあくまでも回避策にすぎません。そして、どれもあまりうまく機能しません。私はどれもお勧めしません。

答え2

ファイルの末尾に到達したら、zzまたは を使用しztて、現在の行をそれぞれウィンドウの中央または上部に移動できます。これは、ファイル内の場所に関係なく、いつでも実行できます。設定をscrolloff5 ( ) に設定すると、カーソルはウィンドウの上部または下部から 5 行離れた場所に留まりますset scrolloff=5。ただし、これはファイルの先頭または下部に到達した場合は機能しません。

答え3

見た目が悪く、Vim の速度を低下させる可能性のある、かなり醜いハックを使わない限り、望むことを行うことはできません。基本的には、ファイルの下部が表示されているかどうかを検出しようとする CursorMoved/CursorMovedI イベントの autocmd のようなものを設定し、表示されている場合は、スクロール位置を強制するためにいくつかの通常モード コマンドを実行する必要があります。

注目すべきは (そして johnny がコメントで提供したリンクの人々が言うように)、このように動作するアプリケーションは Vim だけではないということです。また、Vim ではファイルの末尾を超えてスクロールすることはできません。最後の行は常に表示されている必要があります。

答え4

カーソルが移動しても構わない場合は、次のようにします。

noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j

関連情報