【问题标题】:How do I replace a regular expression with a newline in emacs如何在emacs中用换行符替换正则表达式
【发布时间】:2011-11-26 15:54:59
【问题描述】:

我想在 Emacs 中的 HTML 文件中的每个标记后添加一个换行符。 现在我得到了

M-x query-replace-regexp \(<[^>]*>\) --> \1\n

这会返回

invalid use of "\"

我已经尝试过C-x C-j,但返回的是&lt;html&gt;C-x C-j&lt;head&gt;C-x C-j etc...

如果有人知道解决方案,那将很有帮助:)

【问题讨论】:

    标签: regex emacs


    【解决方案1】:

    您可以使用C-q 插入控制字符。

    C-q C-j 插入换行符,C-q C-i 插入制表符等。

    所以不要输入\n,只需输入C-q C-j

    【讨论】:

    • 当然,C-q C-j 是 user1009013 应该使用的,而不是 C-x C-j。 (无论你在哪里读到,都是错误的。)
    【解决方案2】:

    【讨论】:

    • 不,它返回和以前一样,但现在用 q 而不是 x
    • C-q 我的意思是 control-Q(按住 control 并点击 Q)。所以 control-Q control-J(没有空格)应该可以工作。
    • 哦,这样 :),等一下,正在尝试中... :)
    • 很高兴我能帮上忙。您能否通过单击问题旁边的小复选标记来接受我的回答:meta.stackexchange.com/questions/5234/…
    【解决方案3】:

    以上答案都是正确的。另一个警告:当尝试匹配包括换行符在内的整行时,例如^.*SOMETHING.*$替换 $ 为 C-q C-j,不要附加 C-q C-j。与其他一些 Regexp 方言不同,$ 加上换行符 (C-q C-j) 在 emacs Regexp 中不匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多