gpt4 book ai didi

editor - 带注释换行的文本编辑器

转载 作者:行者123 更新时间:2023-12-04 17:05:36 26 4
gpt4 key购买 nike

我通常使用 Debian (GNU/Linux) 下的 Geany 或 Hi-Tide 进行固件开发,主要是 C(但也阅读旧的汇编程序)。我使用单行注释来记录代码,当我重新输入某些内容并且必须手动重新打破每一行以将其保持在 80 个字符的空白处时,这真的让我很恼火。

是否有可以重新包装连续单行注释的文本编辑器(并在我键入时自动执行此操作)?也就是说,给定:

/// This is a really long line that should have been wrapped at "that" but was not.
/// This sentence is in the same
/// paragraph as the last.

...我想要一个编辑器,将它重新包装到
/// This is a really long line that
/// should have been wrapped at "that"
/// but was not. This sentence is in
/// the same paragraph as the last.

...最好在我打字时明智地这样做。

我试过了:
  • Hi-Tide(基于 Eclipse 3.3)
  • 吉尼
  • jEdit
  • UniversalIndentGUI + 一堆美化器(我找不到任何有效的格式化程序,这也不是一个很好的工作流程)
  • GVim - 下一行开始 //should have been ...而不是 /// should have been ...

  • 更新:只是为了详细说明我接受的答案 - 我选择了 snapshot emacs和一个额外的 filladapt mode还需要

    最佳答案

    在 Emacs 中,要开始自动换行,请输入 auto-fill-mode。要设置线宽,请运行 C-u ⟨columns⟩ C-x f。
    Emacs,或真正的 CC 模式,将预测您的评论结构,以便输入
    ///这是一条很长的线,应该会导致

    ///这是很长的一行
    ///应该‸

    您可以随时使用 M-q 重新填充段落。

    如果您想在每次按键时自动重新填充,那么可能有一些内部命令或第三方库,但您可以使用以下 elisp 代码:

    ;;;不能建议 SELF-INSERT-COMMAND,所以创建一个包装程序。
    (defun self-insert-refill (n)
    (交互式“p”)
    (自插入命令 n))

    ;;;建议 SELF-INSERT-REFILL 每次执行 FILL-PARAGRAPH
    ;;;按键,但*仅*当我们在评论中时
    (defadvice self-insert-refill (refill-paragraph后)
    (let ((face (or (get-char-property (point) 'read-face-name)
    (get-char-property (point) 'face))) )

    (if (and (eq face 'font-lock-comment-face)
    (not (string= ""(this-command-keys)))) ;空间将在重新填充时被删除。
    (填充段落))))

    (ad-activate 'self-insert-refill)

    (add-hook 'c-mode-hook
    ;;将 SELF-INSERT-COMMAND 重新映射为 SELF-INSERT-REFILL。
    (local-set-key [remap self-insert-command] 'self-insert-refill) ))

    这可能不是很健壮或不符合最佳实践,并且可能并不完全令人满意,因为它不适用于一般编辑,例如C-d 和退格,它会稍微减慢编辑器的速度,但这是一个开始。

    关于editor - 带注释换行的文本编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950817/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com