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

标题中提到的最佳实践是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 文件。我目前实现上述做法的方式如下:

  1. :set textwidth=79 在行变得太长之前自动换行。
  2. 我在插入每个句子后手动点击Enter
  3. 如果我完成了对句子的修改和编辑,我会使用 >> 手动移动任何溢出,必要时在其前面加上一个计数。

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

  1. gqq故障线路。
  2. J 一直到句子的结尾。
  3. 根据需要重复第 1 步和第 2 步。

您可以想象,这可能会变得乏味。 难道没有更有效的方法来达到同样的效果吗?最终,我希望能够编写句子而不用担心它们的格式,然后使用 gqap,或gqip,自动生成我目前手动生成的结果。

为此,我怀疑我需要自己编写一个 formatexpr,但我不确定如何继续。我找到了很多插件, Latex Text Formatter Text (Especially LaTeX) Formatter 和 tip ,但它们似乎都不适合我的需求,我不知道如何修改它们。

最佳答案

我可能过于简单化了这个问题,但是这个映射是否符合您的要求?

nnoremap \z (j>>gq)

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

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

https://stackoverflow.com/questions/5706820/

相关文章:

mysql - 如何将 MySQL 结果以表格式存储到文件中

Python 浮点格式 - 类似于 "g",但数字更多

c++ - printf() 中宽度小于精度的意义何在?

string - 什么函数用于格式化/替换 Grails/Groovy 中字符串中的 {0} {1}

python - 在 Python 中口头格式化数字

formatting - 如何在我的博客文章中使用 stackoverflow 样式标记?

html - 用于 HTML 和 CSS 中的双面打印的甚至分页符

formatting - 从 Mathematica 导出自定义格式的表达式

xml - 如何使用 gVim 格式化未格式化的 XML 文档?

c# - 使用 String.Format 时,如果字符串值不为 null 或为空,是否有一种简单的