Emacs 中的长线模式

Posted

技术标签:

【中文标题】Emacs 中的长线模式【英文标题】:longlines mode in Emacs 【发布时间】:2009-08-11 21:23:51 【问题描述】:

我最近在 Emacs 中发现了 longlines 模式(在成为普通用户 5 年后!)。所以我在我的 .emacs 文件中设置了

(add-hook 'text-mode-hook 'turn-on-auto-fill) 
(add-hook 'text-mode-hook 'longlines-mode)

(我还需要自动填充吗?我不知道......)这也将 org-mode 设置为在 longlines-mode 下运行。这似乎弄乱了表格构造功能,所以我想禁用 org-mode 的 longlines 模式(它似乎包含 text-mode-hooks),但为文本(.txt)文件启用它。

我想知道是否有人对此有解决方案?我正在慢慢学习 Emacs Lisp 的一些知识,但还没有研究如何操作模式挂钩......

非常感谢! -斯蒂芬

【问题讨论】:

我也已经使用 emacs 大约 5 年了,最近从***.com/questions/60367/…***.com/questions/60367/…的答案中接触到了超级有用的功能 链接的存档版本:web.archive.org/web/20111127230153/http://***.com/… 【参考方案1】:

试试 visual-line-mode,它从 Emacs-23.1 开始取代 longlines-mode

【讨论】:

是的,我刚切换到 Emacs 23,所以效果很好 - 谢谢。 非常感谢您的回答。我希望他们只是对过时的库(如 longlines-mode)进行核对,以便它们不再意外可用。 :-) 不错的建议,我不知道视觉线模式。另请注意,longlines-show-hard-newlines 仍可在可视线模式下工作,我有时会觉得这很方便。根据最后一条评论重新“核对过时的库”,我更想知道为什么要创建一个新库而不是仅仅升级 longlines-mode。无论如何,简单地删除一个库而不告诉用户替换是没有帮助的。 @ShreevatsaR:功能很少从 Emacs 中删除。除非它妨碍新功能,否则旧东西会被保留。我觉得这个政策相当不错。您可以在 10 年不使用 Emacs 后重新使用它,并且仍然相处得很好。至于具体摆脱 longlines-mode:visual-line-mode 在功能上与 longlines-mode 有所不同,最显着的区别是 longlines-mode 包裹在 fill-column 而 visual-line-mode 包裹在边缘。 longlines-mode 也比 visual-line-mode 性能要好得多,当您的行有数万个字符时。【参考方案2】:

您应该能够通过向org-mode-hook 添加挂钩来显式禁用org-mode 中的longlines-mode

(add-hook 'org-mode-hook
          '(lambda ()
             (longlines-mode -1)))

编辑:感谢 Török Gábor 指出我的 elisp 失败 :-)

【讨论】:

应该是的。基本上它会切换longlines-mode,直到它返回nil,这意味着它已关闭。我看不到另一种确定性关闭它的方法。 为什么不照常使用(longlines-mode -1) 形式?【参考方案3】:

我在使用长线时禁用了自动填充模式,现在我也知道并使用了可视线模式。我认为出于我的目的,这两种方法都是不必要的,并且可能会与它们发生冲突(在延绳/视觉线会插入软换行的相同或不同位置插入硬换行)。

【讨论】:

以上是关于Emacs 中的长线模式的主要内容,如果未能解决你的问题,请参考以下文章

Emacs中的样式组件模式?

如何定义键绑定以在 emacs 中的次要模式之间切换?

Emacs nXML 模式中的 XSLT 2.0 支持

如何从 Emacs 中的次要模式键盘映射中删除键?

11.Emacs进阶之艺术家模式

Emacs shell 模式中的 Bash 自动完成