【问题标题】:Emacs: How to keep the indentation level of a very long wrapped lineEmacs:如何保持很长的换行的缩进级别
【发布时间】:2012-11-26 05:21:53
【问题描述】:

如果文件中的行太长而无法在屏幕上显示,我们可以使用自动换行。现在长行被分割成在屏幕上可见的块。

通常代码是结构化的,缩进用于提高可读性。如果一行被分成两行(或更多行),则只有第一行有右缩进,其他行从行首开始。有没有办法使所有换行的缩进级别保持相同或更一般地不同的缩进级别)?

我找了很久,还是没找到解决办法。这个问题类似于vim的帖子,但是我没有找到emacs的帖子或答案。

【问题讨论】:

    标签: emacs indentation word-wrap


    【解决方案1】:

    可以通过ELPA 打包系统安装的包adaptive-wrap 应该可以满足您的需求。

    安装包后,只需运行以下命令:

    • M-xvisual-line-modeRET(换行)
    • M-xadaptive-wrap-prefix-modeRET(使换行很好地缩进)

    我的init.el 文件中还有以下sn-p 可以自动激活adaptive-wrap-prefix-modevisual-line-mode

    (when (fboundp 'adaptive-wrap-prefix-mode)
      (defun my-activate-adaptive-wrap-prefix-mode ()
        "Toggle `visual-line-mode' and `adaptive-wrap-prefix-mode' simultaneously."
        (adaptive-wrap-prefix-mode (if visual-line-mode 1 -1)))
      (add-hook 'visual-line-mode-hook 'my-activate-adaptive-wrap-prefix-mode))
    

    【讨论】:

    • 无需建议:您可以改用visual-line-mode-hook
    • 另外,如果人们对自适应换行有同样的困惑,当开始缩进包含制表符时,自适应换行不起作用,所以你只需要为缩进使用空格才能使其工作适当地。如果自适应换行能在这方面更加灵活,那就太好了。
    • 值得注意的是,要获得换行指标,可以使用(setq visual-line-fringe-indicators (quote (left-curly-arrow right-curly-arrow)))
    • 是否有充分的理由不让这些模式默认激活?
    • @mcb 我想这是口味和缓冲区内容的问题。对于源代码,我倾向于在需要时手动换行。对于 LaTeX,我使用自动填充模式来自动换行。我只对一些 Markdown 或 Org 缓冲区使用视觉线。但我认为没有任何理由反对总是使用这些模式,除非是像 dired 之类的特殊缓冲区。
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2015-10-16
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多