用剪贴板的内容替换多行的最佳方法是什么?我遇到的问题是,当我把一行拉出来并粘贴到另一行上时,“拉出来”被替换为我刚才替换的行。现在,如果我想用同一条线替换另一条线我必须回去再拉一次。一定有更好的办法。
tvz2xvvm1#
我在我的.vimrc中有这个:
xnoremap p pgvy
字符串(note:这将只对默认寄存器起作用,但这种Map很容易记住)。写一个更详细的版本是可能的。此外,您仍然可以使用P来获得旧的行为。
jyztefdp2#
"0应该有你美国佬的内容。它的类型有点繁琐,但"0p应该可以按照您的要求来做。或者,不要选择并替换前面的旧线路。如果您通过搜索找到了这些行,只需反复点击n.(在初始p之后),然后当它们全部粘贴后,按需要执行ndd,然后再按需要执行n.。在转到Vim时,我需要做的最大的心理转换是弄清楚如何按顺序应用组编辑。也就是说,我不会在一行上做一堆编辑,然后在另一行上做一堆相同的编辑,我会在一堆行上做第一个编辑(使用.,效果很好),然后在一堆行上做第二个编辑,等等。或者,使用宏可能会有所帮助,因为它们非常棒,但有时候要正确处理“复杂”的更改会有点乏味。
"0
"0p
n.
p
ndd
.
xu3bshqb3#
我经常使用另一个注册表,复制你需要的行到一些命名的注册表"ay,然后从那里粘贴"ap
"ay
"ap
bweufnob4#
当你在Vim中粘贴一个选区时,它会用选区的内容替换默认寄存器。如果粘贴在一个选区上会擦除剪贴板寄存器的内容,那么很可能你的.vimrc中有下面这行
set clipboard=unnamed
字符串一种选择是删除它并使用显式剪贴板寄存器"+另一个选项是使用任何其他显式命名的寄存器(a-z)。第一次粘贴后,将线拉回到"c,然后使用"cp从那里粘贴出来。
"+
"c
"cp
sg2wtvxw5#
与其使用复制/粘贴,不如使用文本对象命令(如ciw)来更改内部单词。此方法的优点是可以使用. repeat命令轻松重复。
ciw
yiw
ciw<C-r>0
nxowjjhe6#
使用np其中n是多少时间你想粘贴的线条例如3p将粘贴3行.
np
n
3p
a2mppw5e7#
添加下面的键Map,按Ctrlp粘贴。
" Paste Register 0 map <C-p> "0p
字符串
7条答案
按热度按时间tvz2xvvm1#
我在我的.vimrc中有这个:
字符串
(note:这将只对默认寄存器起作用,但这种Map很容易记住)。写一个更详细的版本是可能的。此外,您仍然可以使用P来获得旧的行为。
jyztefdp2#
"0
应该有你美国佬的内容。它的类型有点繁琐,但"0p
应该可以按照您的要求来做。或者,不要选择并替换前面的旧线路。如果您通过搜索找到了这些行,只需反复点击
n.
(在初始p
之后),然后当它们全部粘贴后,按需要执行ndd
,然后再按需要执行n.
。在转到Vim时,我需要做的最大的心理转换是弄清楚如何按顺序应用组编辑。也就是说,我不会在一行上做一堆编辑,然后在另一行上做一堆相同的编辑,我会在一堆行上做第一个编辑(使用
.
,效果很好),然后在一堆行上做第二个编辑,等等。或者,使用宏可能会有所帮助,因为它们非常棒,但有时候要正确处理“复杂”的更改会有点乏味。xu3bshqb3#
我经常使用另一个注册表,复制你需要的行到一些命名的注册表
"ay
,然后从那里粘贴"ap
bweufnob4#
当你在Vim中粘贴一个选区时,它会用选区的内容替换默认寄存器。如果粘贴在一个选区上会擦除剪贴板寄存器的内容,那么很可能你的.vimrc中有下面这行
字符串
一种选择是删除它并使用显式剪贴板寄存器
"+
另一个选项是使用任何其他显式命名的寄存器(a-z)。第一次粘贴后,将线拉回到
"c
,然后使用"cp
从那里粘贴出来。sg2wtvxw5#
与其使用复制/粘贴,不如使用文本对象命令(如
ciw
)来更改内部单词。此方法的优点是可以使用.
repeat命令轻松重复。yiw
提取内部单词(复制光标下的单词,说“第一个”)。1....将光标移动到另一个单词(例如“second”)。
ciw<C-r>0
更改“second”,将其替换为“first”(为Ctrl-R)。1....将光标移动到另一个单词(说“第三个”)。
.
更改“第三”,将其替换为“第一”。nxowjjhe6#
使用
np
其中n
是多少时间你想粘贴的线条例如3p
将粘贴3行.a2mppw5e7#
添加下面的键Map,按Ctrlp粘贴。
字符串