M +%替换值并且还杀死到行尾(C + k)

时间:2013-06-05 22:31:55

标签: emacs emacs24

我想搜索并替换,说::,然后用一个:和一个C+k替换所有实例

我曾尝试M+%然后::,最后:C+qC+k,但它只是让我^K实际显示在文本中并且没有杀死该行。

思想?

编辑#1: 为了完整起见,数据看起来像这样: here:: stuf i dont want
more:: oth crud
etc:: I am wicked

2 个答案:

答案 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 。在这里,我们在正则表达式搜索模式中包含回车符。