2011-10-21 35 views
3

假设您有这样的文字:如何在VIM中进行剪切和粘贴?

SOMETHING_XXXXXXXXXXXXXX_ELSE 
SOMETHING_XXXXXXXXXXXXXX_ELSE2 
SOMETHING_XXXXXXXXXXXXXX_ELSE3 
SOMETHING_XXXXXXXXXXXXXX_ELSE4 

而且你想用这个词来代替所有XXX..XXX

HELLOWORLD 

如果我进入视觉模式,然后猛拉的话,我怎么可能再更换上面4行中的XXX..XXX使用剪切和粘贴?

如果我尝试,会发生什么是X进入我的'剪贴板',然后我坚持只是手动输入。

+0

这是一个vim问题或视觉工作室的问题? – Oded

+0

@Oded a [viemu](http://www.viemu.com/)问题;-)并非所有的vi [m]都是相同的。 – 2011-10-21 19:48:04

+0

@Oded viemu是vim在VS环境下的一个商业端口。在某些情况下,它的行为与vim有所不同,这可能是为什么原始海报想要包含它。 – Andrew

回答

4

一个很好的选择,我不知道这是否会在工作viemu,但在VIM中,您可以执行以下操作...

使用猛拉和粘贴

拷贝命令到一个特定的寄存器。在可视模式下选择文本并使用命令"ay将文本抽出到寄存器a。然后粘贴时调用"ap命令,该命令粘贴a寄存器的内容。

使用正常的命令

但我强烈希望正常使用的命令。只是用线可视化模式(<C-v>)选择线

SOMETHING_XXXXXXXXXXXXXX_ELSE 
SOMETHING_XXXXXXXXXXXXXX_ELSE2 
SOMETHING_XXXXXXXXXXXXXX_ELSE3 
SOMETHING_XXXXXXXXXXXXXX_ELSE4 

,然后发出以下命令::'<,'>normal fXct_HELLOWORLD。那么你将有

SOMETHING_HELLOWORLD_ELSE 
SOMETHING_HELLOWORLD_ELSE2 
SOMETHING_HELLOWORLD_ELSE3 
SOMETHING_HELLOWORLD_ELSE4 

这意味着它将运行命令fXct_HELLOWORLD为每一行。让我解释一下命令:

  • fX - 移动光标直到第一个X;
  • ct_ - 删除所有东西,直到插入模式;
  • HELLOWORLD - 将代替XXXXXXXXXXXXXX的单词;
+1

谢谢你的'fX'和'ct_'!以前不知道那些。 –

+0

@DavidPoole如果你想改变你正在搜索的角色,你也可以使用cf 。 – Despo

+0

@DavidPoole,不客气! –

0

突出显示四行在视觉模式下,然后

:'<,'>s/X\+/HELLOWORLD/g 
+0

除非你想要更自动的东西。 :) – Andrew

+0

我不想要搜索和替换解决方案,尝试使用剪切和粘贴技术来学习此技术(如果可能)? – codecompleting

0

假设所有 “XXX..XXX” 是相同的。问题是,目前还不清楚有..
如果你想这样做全球

:%s/XXX..XXX/HELLOWORLD/gc 

或只是指定行:

:123,128s/XXX..XXX/HELLOWORLD/gc 
0

通过这样一个问题:How do I use vim registers?我发现^ R在命令模式将粘贴一个注册表。

例如,XXXX高亮然后抽出到“注册: :S/^ R”/HELLOWORLD/g的

1

的一种方法是,以直观地选择你要替换,改变它的代码一旦

CTRL + v 3jt_cHELLOWORLD [Esc]键

注:它需要几秒钟的所有线路进行更新

另一种方法是通过创建一个宏:

记录宏:

q10fXct_HELLOWORLD [ESC]在其他条纹●

运行宏:

Ĵ@ 1j @ 1j @ 1

Q1记录人品1宏

@ 1重播宏

但搜索和替换是你的问题

+0

这就是为什么我更喜欢emacs ;-) – 2011-10-21 20:37:47

+0

@pst从未尝试emacs,但我开始认为我应该给他们一个镜头。 – Despo

+0

这只是一个陈旧的Lisp方言,带有一些文本编辑功能/显示内容 - 但听起来您已经在[vi/vim learning curve plateu](http://blogs.msdn.com/b/steverowe/ archive/2004/11/17/code-editor-learning-curves.aspx)所以没有理由改变;-)原创评论为“我应该做什么!?!?!”反应。 (我用足够的vi/elvis来编辑配置文件,就是这样。) – 2011-10-21 21:41:36