【问题标题】:Emacs set spacing for inline (end of line) commentsEmacs 为内联(行尾)注释设置间距
【发布时间】:2013-02-17 20:50:00
【问题描述】:

在 Python 的 PEP 8 样式指南中,建议内联 cmets 由 two spaces 分隔行的其余部分。但是,Emacs 中的默认设置是运行 comment-dwimindent-for-comment 在行尾和注释之间只放置一个空格。有没有办法改变 emacs 中的这种默认行为?

我正在运行 Emacs 23.3.1

【问题讨论】:

    标签: python emacs emacs23 dot-emacs


    【解决方案1】:

    这应该做你想做的:

       (add-hook 'python-mode-hook
          (lambda () (set (make-local-variable 'comment-inline-offset) 2)))
    

    【讨论】:

      【解决方案2】:

      您可以通过C-h v RET comment-inline-offset查看emacs的文档,然后您将找到@And所说的答案。

      这是一个简化版:

      (add-hook 'python-mode-hook
        (lambda () (setq-local comment-inline-offset 2)))
      

      【讨论】:

        【解决方案3】:

        尝试将comment-start 设置为" # "(前一个空格,后一个空格)。

        M-x set-variable comment-start " # "
        

        【讨论】:

        • 这个 somewhat 工作,但有两个问题:首先,它改变了所有行的注释语法(所以当我注释掉一行时,它们会得到额外的空格,使它们与文本的其余部分不对齐)。其次,如果我再次在带有内联注释的行上运行comment-dwim,它会将内联注释重新对齐,使其只有一个空格。
        • 是的,我明白了。昨晚我开始挖掘源代码,试图找到第一个空格插入的位置,但时间用完了。
        【解决方案4】:

        我认为这可能会满足您的需求:

        (defun my-comment-indent ()
          (interactive)
          (end-of-line)
          (let ((comment-column (+ 2 (current-column))))
            (comment-indent)))
        

        【讨论】:

          猜你喜欢
          • 2019-04-30
          • 1970-01-01
          • 2023-03-27
          • 1970-01-01
          • 2011-10-30
          • 1970-01-01
          • 2012-11-13
          • 1970-01-01
          • 2019-02-16
          相关资源
          最近更新 更多