最近我一直在y
anking和p
发布了许多需要稍微修改的代码(通常只是一个简单的替换)。我可以在粘贴之后手动选择它,或者对于更长的块,我想我可以查看粘贴的行数(20 new lines
)并使用20:s...
,但鉴于它是vim,它似乎在那里应该是一种更简单/更快捷的方法。
那么有没有办法选择或执行文本替换,因为它是p
ut?
答案 0 :(得分:8)
执行p
后,[
和]
标记会立即引用粘贴区域的起始和结束行号(同时适用于y
} )。有关说明,请参阅'[
和']
的帮助。
因此,您可以使用这些标记来形成:s
的工作范围,:'[,']s///
。然后,这将适用于刚刚拉动或粘贴的区域。当然,它不短,但如果你关心它,你可以映射它。也许像nnoremap <Leader>p p:'[,']s/
。
答案 1 :(得分:3)
Chris Morgan已经发布了最佳解决方案。但是你也可以直接对寄存器中的文本进行某种操作。 yank的默认寄存器为"
,因此您可以执行以下操作:
:let @" = substitute(@",'someword', 'somedifferentword','g')
然后粘贴更改的寄存器文本。由于寄存器中的文本是具有一个开始模式(^
)和一个结束($
)的单个字符串,因此与多行寄存器文本中的行上下文相关的操作不那么容易。但仍然有用。
以为我会把它扔出去,因为这是我有时会这样做的。