【问题标题】:how to set width of truncate lines in Emacs如何在 Emacs 中设置截断行的宽度
【发布时间】:2018-05-01 07:27:11
【问题描述】:

我知道自动填充 emacs,这很棒,当我希望文本在特定宽度处有换行符时(例如编码时),我会使用它。但是,在编辑和阅读文本时,我不想重新格式化文本 (M-q) 并插入换行符,因为这在导出文本时看起来很奇怪,例如发送到电子邮件或 Microsoft Word。

emacs 'truncate lines' 是完成这项工作的工具吗?似乎是,但我不知道如何设置截断线的宽度,它似乎只能在屏幕宽度处截断 - 是否有此模式或其他模式的设置?

(我使用的是spacemacs,但这应该没有太大的相关性)

【问题讨论】:

  • 你不是在找visual-line-mode吗?
  • 我正在寻找一种可以设置宽度的视觉线模式

标签: emacs spacemacs


【解决方案1】:

在 emacs 交换 here 中有一个代码寻址截断小于 wincow 的 wicth 的缓冲区。 看看@JeanPierre 的回答。它使用set-window-margins 参见emacs 手册here

它是一个交互函数,所以在从头计算后使用M-x my/change-window-width调用它。

(defun my/change-window-width (width)
"Adjust margins so that window is centered"
  (interactive "NWindow width: ")
  (if (= 0 width)
      (set-window-margins nil 0 0)
    (let* ((cur-width (window-width))
           (cur-m (window-margins))
           (cur-l (if (and cur-m (car cur-m)) (car cur-m) 0))
           (cur-r (if (and cur-m (cdr cur-m)) (cdr cur-m) 0))
           (lr (- (+ cur-l cur-r cur-width) width))
           (left (/ lr 2))
           (right (if (= 0 (% lr 2)) left (1+ left))))
      (set-window-margins nil (max left 0) (max right 0)))))

它是visual-line-mode 中函数的变体,请参阅文档here

只截断缓冲区的一部分,它看起来像填充列

【讨论】:

  • 顺便说一句,您是否在任何地方发布有关您的弗拉门戈吉他制作和 Python 编码的信息?从我的角度来看,在立方体农场中听起来很有趣;)
  • @chris 不再是我不......如果我的生活得到一些秩序,可能会回来。谢谢!
【解决方案2】:

我一般用

M 72 M-x set-fill-column

它打破了 72 列的行。不过,这仍然会妨碍您解决“不要混淆导入 Word”的问题。如果您以特定格式保存文件(例如,使用M-x xml-mode),那么我相信这将帮助您解决导入问题。

【讨论】:

  • 谢谢,但我试图避免自动填充。在我使用过的其他编辑器中,有一个“虚拟换行”模式,因为它可以很好地查看文本内容(无需扫描长行),而无需在文档中插入换行符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 2010-12-19
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
相关资源
最近更新 更多