标题中提到的最佳实践是the one suggested by Uri :
When writing paragraphs, start each sentence at the beginning of a line, and if it spills over, each subsequent line is tabbed.
我将 gVim 与 Vim-LaTeX 一起使用, 带有 indent/tex.vim
文件,编辑 LaTeX 文件。我目前实现上述做法的方式如下:
:set textwidth=79
在行变得太长之前自动换行。有时,最后一步会使一个或多个溢出超出最大线宽。在这种情况下,我
您可以想象,这可能会变得乏味。 难道没有更有效的方法来达到同样的效果吗?最终,我希望能够编写句子而不用担心它们的格式,然后使用 gqap,或gqip,自动生成我目前手动生成的结果。
为此,我怀疑我需要自己编写一个 formatexpr
,但我不确定如何继续。我找到了很多插件, Latex Text Formatter 和 Text (Especially LaTeX) Formatter 和 tip ,但它们似乎都不适合我的需求,我不知道如何修改它们。
最佳答案
我可能过于简单化了这个问题,但是这个映射是否符合您的要求?
nnoremap \z (j>>gq)
所以在普通模式下按 \z 将执行以下操作:从光标位置跳转到句子的开头。然后转到下一行并缩进它。然后从这一行重新格式化到句子的结尾。重新格式化句子是可行的方法,而不是像您的方法似乎那样单独重新格式化每一行。
当然,如果您愿意,您可以使用插入模式映射,或者甚至尝试重新定义 Enter 键的行为以自动执行此操作(尽管我不知道这是否会意外后果...)。
https://stackoverflow.com/questions/5706820/