回答:
これを行う1つの方法は、ie(vimtexプラグインやvim-textobj-latexを使用するなど、さまざまな場所で利用可能な(inside-environment)カスタムテキストオブジェクトを使用します(他にもあります)。この機能により、rewrapコマンドは次のようになります。
gqie
または
gwie
(カーソル位置を維持するため)。
現在のテキスト位置(これはあなたのユースケースであることがわかります)から段落の最後までテキストを再フォーマットするだけの場合は、おそらく次の構成で行うことができます(プラグインは必要ありません)。
gq/\(^\s*$\|\\end\)
これは、空の行か、\endキーワードを含む行のどちらか早い方にフォーマットされます。したがって、このマッピングを使用できます。
:nnoremap <F8> gq/\(\\end\\|^\s*$\)<CR>
gqap?
F8再マッピングについては、更新された回答を参照してください。
:map <F8> gq/\(^$\|^[%]$\|^\\end\)<CR>。誰かが私が間違っていることを教えてもらえますか?私は完全に空行(一致しようとしている^$)、唯一%コメント文字(とライン^[%]$)またはラインの開始を\end(^\\end)。
\\|代わりにセパレータとして使用する必要があると思います\|。
gqiebegin ... endブロックの内部で必要なことは何ですか?メインテキストの本文では、\ end {document}まですべてを折り返そうとします-次の空白行で停止するように指示する方法はありますか?