在Emacs(非Windows版)中,我能否将长行断开到下一行?

10

在此输入图片描述

当终端宽度变窄时,使用emacs(非windows)会在行末显示“$”标记。有没有办法将长行断开到下一行,而不是显示“$”标记?

添加

M-x auto-fill-mode对于text-mode有效,但对于org-mode,$标记仍然保留在auto-fill-mode中。


1
试试Cocoa Emacs,它比在Terminal.app中运行的Emacs提供更好的体验。 - ocodo
6个回答

18
您可以使用 M-x fill-paragraphM-x fill-region 命令让 Emacs 将长行分为多个短行。您还可以使用 M-x auto-fill-mode 命令设置这种行为为默认模式。

14

您可以通过M-x set-variable truncate-lines nil来禁用行截断。

您也可以在您的.emacs文件中加入(setq-default truncate-lines nil)以将该设置默认为关闭状态。


1
这是实际的答案,本应该被接受。 - Lukas Juhrich

4
你可以自定义word-wrap变量来视觉上换行。这应该类似于longlines-mode,但它会使用缓冲区宽度而不是填充列进行换行。
你还可以选择使用visual-line-mode来同时启用单词换行,并且“重新定义简单的编辑命令以作用于视觉行而不是逻辑行”,这解决了nominolo提到的一个问题。

3

将其设置为所有缓冲区:

(setq truncate-lines nil)

只针对特定的模式(例如org-mode)设置:

(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)))

2

仅在当前会话中使用命令。

M-x toggle-truncate-lines

1

truncate-lines设为nil会打断长行,但是如果按下C-ndownarrow,光标将跳到下一个物理行,而不是光标下方显示的位置。

当使用Tex时,我通常会打开M-x longlines-mode。它有些怪癖,但工作得相当好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接