在Emacs中,如何一次编辑多个点?

在Emacs中,如何一次编辑多个点?,emacs,elisp,Emacs,Elisp,有两种变体。我想你可以选择一个矩形,然后在所有行的开头和结尾添加内容 我还想知道是否有可能选择位于不同偏移位置的多个点,以便一次编辑所有点。我认为Yasnippet提供了类似的功能,但只有在使用预定义模板时才提供。像这样的 <div class=""> <a class=""> 在这里,我可以在两个类的东西上标记一个点,输入将编辑两个类属性。有可能吗?Emacs Rocks!描述,它符合您的要求。(这是他们的照片。) 编辑:@Lifton指出它已被取代。除了Juan

有两种变体。我想你可以选择一个矩形,然后在所有行的开头和结尾添加内容

我还想知道是否有可能选择位于不同偏移位置的多个点,以便一次编辑所有点。我认为Yasnippet提供了类似的功能,但只有在使用预定义模板时才提供。像这样的

<div class="">
<a class="">

在这里,我可以在两个类的东西上标记一个点,输入将编辑两个类属性。有可能吗?

Emacs Rocks!描述,它符合您的要求。(这是他们的照片。)


编辑:@Lifton指出它已被取代。

除了Juancho的答案,我还使用了Steve Yegge的答案。示例用法(第一个示例将提供我认为您需要的内容):

C-u C-M-M w foo
-在每个多重选择中插入/前置“foo”(您也可以附加或替换文本)
C-u-1 C-M-M r\(\w++\)。++\s-++\(.++\)
-选择每个标记内容的第一个字和最后一个字
(前提是内容不跨越多行)
C-M-M x M-x上壳区
-将缓冲区中的所有多选转换为大写
C-u M-w C-q C-j--C-q C-j
-将所有多选项保存为单个项,
在一行上用“--”分隔的选项

请注意,这已经被(看起来仍在开发中)取代。
 C-u C-M-m w foo <RET> <RET>
  - inserts/prepends "foo" to every multi-selection (you can also append or replace text)

 C-u -1 C-M-m r <pre>\(\w+\).+\s-+\(.+\)</pre>
  - selects first and last word of the contents every <pre> tag
    (provided the contents don't span multiple lines)

 C-M-m x M-x upcase-region
  - converts all multi-selections in buffer to uppercase

 C-u M-w C-q C-j --- C-q C-j <RET>
  - saves all multi-selections to kill-ring as a single item,
    with selections separated by "---" on a line by itself