【发布时间】:2020-07-25 19:12:24
【问题描述】:
我知道有很多问题要求在 Sublime Text 3 中进行硬包装,并且我尝试了 AutoWrap 扩展,但是在编写 LaTeX 代码时,最好它的行为类似于软包装(即,如果你重排段落删除段落中间的单词),同时以 100 个字符插入硬换行。这很重要,因为人们想像在文字处理器中一样打字,但很难在扫描整个段落时发现错误。
我知道这会很困难,因为您需要将“真正的”硬包装与应该重排的硬包装区分开来(也许可以使用换行符或其他东西),但是是否有任何包装已经可以做这种事情?如果不是,这是否有可能使用插件 API 来实现?
同样,仅执行自动硬包装或更改软包装设置的插件无法满足需要。准确地说,我在下面以荒谬的细节扩展了这些要求,但总结起来非常容易。
我希望文本编辑器像现在一样处理硬包装和软包装,除了:1) 软包装增加行号。 2) 当保存到磁盘时,为了 tex 编译器的目的,软包装被保存为硬包装,但是当被崇高文本加载时,被识别为需要被视为软包装。
是的,如果在我更改行长时从来没有任何明确的硬包装需要保留并且不会被重排,这将是微不足道的。
如果你真的不知道我在问什么(这肯定是我的错,而不是你的错),请只阅读这一点。
假设我想在 ~80chars 处换行并编写以下内容(其中括号表示给定总长度的一些单词数)。
[70 chars] [10 chars] [11 chars] [60chars] [10chars] [9chars] [30chars]
这需要自动改成
[70 chars] [10 chars]\n
[11 chars] [60chars]\n
[10chars] [9chars] [30chars]\n
到目前为止,这就是 AutoWrap 所做的。但是现在我决定第一个 [10 char] 段只是重复我之前说过的内容,所以我将光标向上移动到该行并仅删除这 10 个字符 而不会触及第 2 行和第 3 行。我需要它自动重排到选择我需要重排的文本区域。换句话说,假装硬包装是软包装。
[70 chars] [11 chars]\n
[60chars] [10chars] [9chars]\n
[30chars]\n
但是,如果我最初在前 80 个字符之后键入了一个显式返回,那么我需要将其视为硬包装,所以我只需要得到
[70 chars]\n
[11 chars] [60chars]\n
[10chars] [9chars] [30chars]\n
如果我删除了这 10 个字符。
【问题讨论】:
-
让我补充一点,至少任何可以管理此问题的扩展都必须能够将信息保存到文件中,以便区分在回流时应被视为软包装的硬返回和显式硬返回返回。也许在换行符中添加 cr 可能允许这样做,但不确定。