我想搜索并替换,说::
,然后用一个:
和一个C+k
替换所有实例
我曾尝试M+%
然后::
,最后:C+qC+k
,但它只是让我^K
实际显示在文本中并且没有杀死该行。
思想?
编辑#1:
为了完整起见,数据看起来像这样:
here:: stuf i dont want
more:: oth crud
etc:: I am wicked
答案 0 :(得分:3)
创建键盘宏,首先我在其中搜索::
,删除最后一个:
,然后点击C-k
。只要匹配,就执行该键盘宏。我就是这样做的: - )
答案 1 :(得分:3)
我发现很难理解你实际上要做什么,但那可能只是我。
1)如果您拥有以下内容:
foo
:: bar
baz
你想要的是这个:
foo
:
baz
然后你可以像这样使用正则表达式搜索/替换: M-C-%::。 * RET:RET 。这会调用您传递双冒号的函数query-replace-regexp
,然后调用.*
以匹配行的其余部分。你用一个冒号替换任何匹配。
(请注意,如果在控制台(-nw
)中运行Emacs, MC - %可能不起作用,因为并非所有终端都能生成所需的转义序列。在这种情况下,只需输入 Mx query-replace-regexp 代替。)
2)如果您拥有以下内容:
foo
::
bar
你想要的是这个:
foo
:bar
然后你只需要在搜索模式中包含回车符: M-%:: C-q C-j RET:RET 。请注意,这不需要正则表达式搜索,正常的字符串搜索可以用于此目的。
3)如果您拥有以下内容:
foo
:: bar
baz
你想要的是这个:
foo
:baz
然后你可以结合上面的两种技术并做: M-C-%::。 * C-q C-j RET:RET 。在这里,我们在正则表达式搜索模式中包含回车符。