vim复制并替换文本

时间:2009-03-06 15:15:55

标签: vim copy-paste

让我们说我有这样的文字:

$test = 'lorem';
$test2= 'ipsum';

我想复制lorem并粘贴到ipsum中。 我尝试在lorem上做yi'然后继续ipsum并做ci'但是用ipsum替换了我的pastebin。我以前的副本丢失了。

10 个答案:

答案 0 :(得分:9)

易:

“kyi”on lorem,移动到ipsum的i,ve“kp

将lorem lorem 放入寄存器k,将其粘贴到来自寄存器k的ipsum 上,保存在寄存器k中,随时可以在任何地方粘贴否则你可能想把它。 ipsum仍然在默认寄存器中,但这不再是一个问题,也可能有用。

如果您已在寄存器k中找到了某些内容,则可以使用其他寄存器(只需使用其他密钥)。

答案 1 :(得分:7)

lorem上的 yi',移至ipsum的i, vep

答案 2 :(得分:5)

我通常会去sed命令。

:%s/ipsum/lorem/g
  • %表示为每一行执行此操作
  • s表示sed,或搜索和替换
  • 最后
  • g表示将ipsum替换为lorem;如果省略这个,它只会替换第一个。

答案 3 :(得分:3)

转到lorem,你们(猛烈地说到结尾)。 转到ipsum的i,“_ de”(删除到单词的结尾,将删除的文本放入黑洞寄存器中)。 P(光标前粘贴寄存器)。

总而言之:yej“_deP

答案 4 :(得分:2)

为什么不使用"ayi'进入命名缓冲区,然后使用d'i"aP删除并粘贴?

答案 5 :(得分:1)

我不确定你到底想要什么。

你有两行:

$test = 'lorem';
$test2= 'ipsum';

如果你去l和yw,它猛拉lorem, 然后转到ipsum的i,cw和p,它将用lorem替换ipsum。 你仍然会在寄存器中同时拥有lorem和ipsum。

您可以使用以下命令获取这些寄存器的内容:reg

如果你想粘贴它们的东西,那么“* p,或”:p或“0p(当你输入时会看到它:reg)

答案 6 :(得分:0)

这里用词来阻止Markdown将后面的代码视为纯文本。

/lorem
"adw
/ipsum
"aP"bdw
``
"bp

第一个文本搜索'lorem';下一个将该单词删除到名为“a”的缓冲区中,在文本后面留下一对空引号。下一个搜索找到'ipsum'; "aP在单词ipsum之前拉出名为'a'的缓冲区; "bdw将该单词删除到名为'b'的缓冲区中,后面留下'lorem'。双重回拨可以追溯到最后一次搜索的来源 - 空引号;并且"bp在第一个引号后拉出命名缓冲区。

您也可以省略"a"b,但这样,这些值位于指定的缓冲区"a"b中,可以再次复制,也可以再次复制,再次,直到你不再需要这些值。

答案 7 :(得分:0)

在impsum上ci'之后,你的lorem在注册"0。因此,您可以执行ci'^R0^R表示Ctrl+r)并粘贴您的lorem代替ipsum。

有关编号寄存器的详细信息,请参阅:help quote_number

答案 8 :(得分:0)

lorem

上的

vi'y vi'p ipsum

gvy复制 lorem 以使用vi'p

注册可能的宏

qa - gvy - j - vi'p - q - @a - @@ - {{1} } ...)

答案 9 :(得分:-1)

您希望使用y复制选区并p进行粘贴。

Here is a good list to keep handy.