【问题标题】:How to center text in Emacs?如何在 Emacs 中将文本居中?
【发布时间】:2012-07-23 23:53:08
【问题描述】:

是否可以在 Emacs 中进行转换:

<!-- inclusion du code JavaScript    -->
<!-- inclusion des feuilles de style -->
<!-- definition du ZHO               -->

进入这个(近似):

<!--   inclusion du code JavaScript  -->
<!-- inclusion des feuilles de style -->
<!--        definition du ZHO        -->

【问题讨论】:

    标签: text emacs centering


    【解决方案1】:

    您将变量 fill-column 设置为 nr。列数。

    那你打电话给(center-line)

    你可以这样做:

    1. (setq fill-column 100)
    2. 在每一行上剪切“”
    3. 你打电话(中线)
    4. 在第 1 列调用 string-rectangle,并插入 '
    5. 在最后一列调用字符串矩形,并插入'--->'

    要在最后一步 [3] 到达最后一列,您可以执行 (goto-char (point-min)),然后(行尾),然后调用 (indent-line-to COL)

    【讨论】:

    • 不是 OP 所要求的,因为这不会调整注释分隔符内的间距。
    【解决方案2】:

    您可以使用矩形构建一个函数或宏来执行此操作。 这将执行以下操作:

    • 剪切仅包含文本的矩形
    • 将其粘贴到临时缓冲区中
    • fill-column 设置为列数并使用center-line(参见alinsoar 的回答)
    • 将结果剪切为矩形
    • 在原始缓冲区中将其拉回为矩形

    【讨论】:

    • 如何将 fill-column 设置为列数?
    • 正如 event_jr 所做的那样,您可以使用(setq fill-column (current-column)),因为拉动时当前列位于矩形的末尾。
    【解决方案3】:

    我已将下面的点连接为交互式命令。 @nicolasdudebout 的算法或多或少是合理的,另外需要一个“硬”move-to-column 来选择矩形。

    选择你感兴趣的(无箭头)矩形并运行:

    (defun center-rectangle (beg end)
      (interactive "*r")
      (kill-rectangle beg end)
      (with-temp-buffer
        (yank-rectangle)
        (setq fill-column (current-column))
        (center-region (point-min) (point-max))
        (goto-char (point-max))
        (move-to-column fill-column t)
        (kill-rectangle (point-min) (point)))
      (goto-char beg)
      (yank-rectangle))
    

    【讨论】:

    • 这确实有效。选择 不包括 &lt;!--s 或 --&gt; 的矩形。
    【解决方案4】:

    set-justification-center。正如您所料,还有set-justification-right。这些功能包括在不适当位置的换行符,因此可能会破坏段落行。

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 2014-08-08
      • 2014-07-21
      • 2011-06-12
      • 1970-01-01
      • 2018-01-08
      相关资源
      最近更新 更多