回答:
これを行う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
)。
\\|
代わりにセパレータとして使用する必要があると思います\|
。
gqie
begin ... endブロックの内部で必要なことは何ですか?メインテキストの本文では、\ end {document}まですべてを折り返そうとします-次の空白行で停止するように指示する方法はありますか?