使用Vim,根据这种最佳实践,是否有更有效的格式化LaTeX段落的方法?

Yas*_*man 7 vim formatting latex

标题中提到的最佳实践是Uri建议的最佳实践:

在编写段落时,在一行的开头开始每个句子,如果它溢出,则每个后续行都有选项卡.

我用gVim打开Vim的乳胶,它配备了一个indent/tex.vim文件,编辑LaTeX文件.我目前实施上述做法的方式如下:

  1. :set textwidth=79会在它们变得太长之前自动断线.
  2. Enter插入每个句子后我手动点击.
  3. 如果我已完成修改和编辑句子,我会手动转移任何溢出效应>>,必要时在前面添加一个计数.

有时,最后一步会使一个或多个溢出超过最大线宽.在这种情况下,我

  1. gqq 错误的路线.
  2. J 我一直到句末.
  3. 必要时重复步骤1和2.

你可以想象,这可能会变得单调乏味.是否有更有效的方法来实现相同的结果?最终,我希望能够编写句子而不必担心其格式,然后使用gqapgqip自动生成我当前手动生成的结果.

要做到这一点,我怀疑我需要写一个formatexpr我自己的,但我不知道如何继续.我找到了一些插件,Latex Text FormatterText(特别是LaTeX)Formatter,以及一个提示,但它们似乎都不适合我的需要,我不知道如何修改它们来做到这一点.

Pri*_*ash 4

我可能把问题过于简单化了,但是这个映射能达到你想要的效果吗?

nnoremap \z (j>>gq)
Run Code Online (Sandbox Code Playgroud)

因此,\z在正常模式下按下将执行以下操作:从光标位置跳到句子的开头。然后转到下一行并缩进。然后从这一行到句子末尾重新格式化。按句子重新格式化是可行的方法,而不是像您的方法那样单独重新格式化每一行。

当然,如果您愿意,您可以使用插入模式映射,或者甚至尝试重新定义Enter键的行为以自动执行此操作(尽管我不知道这是否会产生意想不到的后果......)。