vi / vimはウィンドウ内のバッファーの動きを不明瞭にします


11

:set wrapvi / vimで使用する場合、ファイルを実際の行(j)ではなく表示行(gj / gk)でナビゲートする場合でも、カーソルを新しい行に移動すると、折り返し行全体の内容が表示バッファーに配置されます。 / k)。たとえば、行が5つの画面行にラップされ、現在ディスプレイバッファーの外側にある場合、この行に移動すると、バッファーは5行ずつジャンプして、行全体を画面に合わせます。この動作を無効にする方法はありますか?set display+=lastline折り返された行が行から離れることで画面から強制的に削除される場合、部分的な行の表示が可能になることに注意してください。ただし、これは最初にバッファーの外側にあった行に移動するときに発生するバッファージャンプを解決しません。

明確化:上記の説明があいまいな場合、行の折り返しを有効にしてvimでスムーズにスクロールできるようにして、行全体が義務的に表示されるのではなく、画面から部分的に表示されるようにしたいということです。


1
あなたが言っていることを確認してもらえますか:行の折り返し部分の一部を非表示にして、スムーズにスクロールできるようにしたいですか?ときの線が完全にVimのショー'wrap'である私は怖い
ブノワ

正確に。スクロール中にラップされた行全体を表示するこの動作をオーバーライドする方法はないと思いますか?ありがとうございました。
USER001

1
私が知っていることではありません。しかし、答えを待ってください。Vimが何ができるかは誰にもわかりません。
ブノワ

1
@Benoitに同意します。私の知る限り不可能です。
フレドリックピール

1
現在、このトピックに関するvim_devメーリングリストに関する議論があります。このリクエストを受け取ったのはあなただけではないようです。
ランディモリス

回答:


1

完全な答えではなく、リードかもしれません。scrollオプションがあります。特に、このオプションのヘルプは次のとおりです。

{Viは少し異なります: 'scroll'はファイルの行ではなく画面の行数を示し、行が折り返されると違いが生じます}


ありがとう、それは役に立ちます。<Ctrl-E>(下)と<Ctrl-Y>(上)のキーの組み合わせは、私が望む基本的な動作を提供します。カーソルがウィンドウの一番上または一番下の行にあるかどうかを検出する方法がある場合、一時的な解決策は、上下矢印キーを条件付きで<Ctrl-Y> gkおよび<Ctrl-E> gjにマッピングすることです。それぞれ。カーソルがウィンドウの一番上または一番下の行にない場合、それらをgkとgjにマッピングする必要があります(条件文のelseステートメント)。カーソルが現在のウィンドウの一番上または一番下の行にあるかどうかを検出する簡単な方法はありますか?
user001

0

通常モードでは、gkand gjg<up>またはg<down>)を使用して、折り返された行の表示部分間をジャンプできます。このvim wikiページでは、動作を永続的に変更する方法について説明しています。


1
確かに、これらの動作を方向矢印キーにマップしました。ただし、これは、折り返された行に移動するときに、折り返された行全体を表示する義務とは異なります。この動作は、gj / gkまたはj / kの使用とは無関係です。ラップされた行全体が表示されることなく、最初にバッファーから出た(画面から)行に部分的にナビゲートできるようにしたいと思います。
user001

OK、それから私は誤解しました。さて、あなたの行は折り返されているか、折り返されていないと思います。あなたが望むのはその間の何かですが、私はそれは単に不可能だと思います。
jpjacobs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.