vim でファイルの末尾を超えてスクロールできないようにするにはどうすればいいですか?
答え1
ヴィム実際には許可されませんスクロールファイルの末尾を越える(つまり、カーソルを最後の既存の行を超えて移動する)が、ショー最後の行より数行後ろに追加します。何かを見せます。
申し訳ありませんが、無効にすることはできません。ただし、Vimのソースをダウンロードしたい場合(結局のところ、Vimはオープンソースです)と、フィドルそれに、存在しない行にネイティブに ~ を挿入します。何かを表示する必要があるためです。すべてのエディターがこれを行います。
誰かが示唆したように、この問題を回避する方法はありますが、それはあくまでも回避策にすぎません。そして、どれもあまりうまく機能しません。私はどれもお勧めしません。
答え2
ファイルの末尾に到達したら、zz
または を使用しzt
て、現在の行をそれぞれウィンドウの中央または上部に移動できます。これは、ファイル内の場所に関係なく、いつでも実行できます。設定をscrolloff
5 ( ) に設定すると、カーソルはウィンドウの上部または下部から 5 行離れた場所に留まりますset scrolloff=5
。ただし、これはファイルの先頭または下部に到達した場合は機能しません。
答え3
見た目が悪く、Vim の速度を低下させる可能性のある、かなり醜いハックを使わない限り、望むことを行うことはできません。基本的には、ファイルの下部が表示されているかどうかを検出しようとする CursorMoved/CursorMovedI イベントの autocmd のようなものを設定し、表示されている場合は、スクロール位置を強制するためにいくつかの通常モード コマンドを実行する必要があります。
注目すべきは (そして johnny がコメントで提供したリンクの人々が言うように)、このように動作するアプリケーションは Vim だけではないということです。また、Vim ではファイルの末尾を超えてスクロールすることはできません。最後の行は常に表示されている必要があります。
答え4
カーソルが移動しても構わない場合は、次のようにします。
noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j