合理地在 Emacs 中使用分页符

发布于 2023-06-07 14:25:06 字数 2838 浏览 58 评论 0

今天我想说一说 GNU Emacs 的概念, 我是怎么使用页的,以及为什么我要使用页。
在我的经验看来页的作用经常被 Emacs 用户所忽视, 原因可能是都觉得它太丑了吧, 不过我会告诉你一个 package 可以美化它。 同时,我还会推荐你一个 package 可以实现很方便的在各页之间跳转。

A Crash Course Introduction to Pages

Emacs 中的 指的是那些被 form-feed 字符(即^L,或者说 Ctrl+L 字符)所分割的那些文本。 在 Emacs 中可以按下 C-q C-l 来输入。 其中 C-q 是告诉Emacs直接插入你接下来输入的键。
正常情况下按下 C-l 会运行命令 recenter-top-bottom。 因此我们不能通过直接按下 C-l 的方式插入form-feed字符。
不过 C-q C-l 则是告诉Emacs忽略 C-l 所绑定的命令,直接插入字面量^L, 而这个字符正是我门用来将文本分割成页的字符。

我们可以通过 C-x [C-x ] 来向上/向下翻页。 他们对应的命令分别是 backward-pageforward-page
另外,按下 C-x C-p 可以选中我们当前页的所有内容。

关于页的介绍就差不多了。 下面来说说帮助我们在页之间跳转的那些 package。

Why Use Pages?

我喜欢将内容按页分成几个章节,尤其在编程时更是如此。

比如我的工作室最近刚编写了一个名为 Chance 的库。 其源代码 就用分页符分成了几个部分,当然,这你在 Github 上是看不出来的;这些分页符看起来就像是一个空行而已,不行你可以看看第228行。

不过在Emacs上,分页符可以看起来像是这样的。

借助 Steve Purcell 那超赞的 page-break-lines package可以让丑陋的^L字符显示成这些漂亮的横线。

Chance 使用了 LDoc 来生成文档— LDoc 类似于 Javadoc 的 Lua 版本。 在 LDoc 中,我们可以使用 @section 标注来将代码组织成相关的几块。

我在每个创建新 @section 的注释前都插入一个分页符,这样一来,源代码的各个块就与 Emacs 的各个页一一对应起来了。

如此,我就可以通过页在源代码的各个块之间跳转了。 我当然可以用前面提到过的 C-x [ / C-x ] 来跳转,但其实还有更好的方案。

A Nicer Way to Navigate Pages

我觉得用 helm-pages 在页之间跳转挺不错的。 当我在 Chance 的源代码中调用 helm-pages 后,看到的结果是这样的:

它会列出每页的第一行内容,这样可以很容易的在代码的各部分之间进行跳转。

~Chance~ 的测试案例 也一样用分页符划分成了几部分, 用 helm-pages 来浏览的效果也不错。 而且每个page的第一行恰好是一个调用 describe() 的语句,这条语句说明了这部分代码测试的内容(我用 Busted 来进行单元测试)。

Conclusion

是的,这是一篇很多的文章,不过也确实没什么好说的了。 希望本文能告诉你如何将代码划分出多个页,同时如何在这些页之间进行快速的跳转。
如果你从未用过页,那么请尝试一下,也许你会像我一样,发现这真是组织文件内容的好工具。

强烈推荐阅读此文 info by Artur Balabarba on page-breaks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

叫嚣ゝ

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

13886483628

文章 0 评论 0

流年已逝

文章 0 评论 0

℡寂寞咖啡

文章 0 评论 0

笑看君怀她人

文章 0 评论 0

wkeithbarry

文章 0 评论 0

素手挽清风

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文