2010-12-19 56 views
12

我做以下一些文本复制引号内,并粘贴在不同的地方(引号内为好):如何用缓冲区中的字符串替换引号中的字符串?

di" 
go-to-buffer-for-copy 
copy-string (ex. yi") 
then-go-to-prev-buffer 
paste-to-string (p) 

但我想这样做的一个简单的方法,如:

yi" 
go-to-buffer-for-paste 
replace-inner-quotes-to-yanked-text 

回答

35

对于“replace-inner-quotes-to-yanked-text”,您可以使用vi"p

+0

它有复制和粘贴吗? '\'' – 2010-12-19 18:53:32

+1

的确,谢谢。 – 2010-12-19 19:45:55

+1

你能想到一个允许用'.'重做的版本吗?除了当我想在多个地方做同样的事情时,我完全可以做到这一点。在上面的情况下,最后一个缓冲区将被删除的文本替换,并且在重做时不会捕获选择内容。我现在的解决方案是''+ yi'''把文本放在我的系统剪贴板中,'ci“从剪贴板粘贴。只有几个字符比我想要的更多:) – 2013-08-06 00:07:29

1

(拉我的评论到自己的答案)

假设你使用vim与系统剪贴板,你可以做到以下几点:

  • "+yi"到引号内的文字复制到系统剪贴板
  • 将光标置于要放置文本的引号内
  • ci"<Ctrl-V><Esc>用剪贴板的内容替换引号内的内容

一个好处是,如果要将原始文本放在多个位置,可以将光标置于下一个位置并按.

vi"p,由Randy Morris提出,但它取代了默认寄存器的内容,并且选择将不会在“do again”命令中捕获,只会粘贴。

您仍然可以使用"0寄存器来访问您的原始文本,但我还没有找到一个可以在引号内部更改并以重做方式粘贴的命令。

1

此方法,可以留出插入模式,并且不需要无名剪贴板映射到系统剪贴板:引号

  • ?'之后的前几个字母里面

    • yi"(抽出目标引号(找回来)的当前内容
    • p(膏)
    • dt"(删除预先存在的内容,这是在引号
  • 相关问题