0

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

M+%我当时::和最后都试过了,:C+qC+k但它只是让我^K实际显示在文本中,并没有杀死这条线。

想法?

编辑#1:为了完整起见,数据如下所示: here:: stuf i dont want
more:: oth crud
etc:: I am wicked

4

2 回答 2

3

创建一个键盘宏,您首先在其中搜索::,删除最后一个:,然后点击C-k。只要匹配,就执行该键盘宏。我就是这样做的:-)

于 2013-06-05T22:38:25.650 回答
3

我发现很难理解你实际上想要做什么,但这可能只是我。

1)如果您拥有以下内容:

foo
:: bar
baz

你想要的是这个:

foo
:
baz

那么您可以像这样使用正则表达式搜索/替换:M-C-% : : . * RET : RET. 这将调用query-replace-regexp您传递双冒号的函数,后跟.*以匹配该行的其余部分。您用一个冒号替换任何匹配项。

(请注意,M-C-%如果您在控制台 ( ) 中运行 Emacs 可能不起作用,-nw因为并非所有终端都能产生所需的转义序列。在这种情况下,只需键入即可M-x 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. 在这里,我们在正则表达式搜索模式中包含回车。

于 2013-06-05T23:34:38.027 回答