我无法在任何地方找到这个答案。我使用dd
或V
+ d
在Vim中删除了一些内容,我想将其粘贴在括号内。我怎么做?
p
之后会粘贴,而P
之前会粘贴,但我希望它粘贴到我的光标位置。
编辑:我想从某个光标位置(不是整行)切换到行尾并粘贴到另一行的光标位置。
答案 0 :(得分:3)
当您使用其中任何一种方法进行剪切时,您会在该行的末尾获得换行符。使用换行符时,vim必须在之前或之后放置该行。
要获得所需的行为,您应该使用0D
删除,然后删除,然后使用普通p
将其放入光标。
如果要从当前光标位置切割到行尾,然后将其粘贴到光标位置的另一行内,则导航执行第一行,执行D
切割到行尾,然后移动将光标移动到要粘贴它的位置,然后使用p
。
答案 1 :(得分:1)
尝试此操作,通常执行Y
或dd
,并创建此映射:
nnoremap <leader>p :let @"=substitute(@","\n","","g")<cr>p
nnoremap <leader>P :let @"=substitute(@","\n","","g")<cr>P
当您按p/P
时,它会以默认方式粘贴(使用换行符)。当您按<leader>p /<leader>P
时,它会粘贴&#34;在线&#34;。
这不是很干净,因为它更改了@"
,下次按p
时,换行符不再存在。我有点懒,把sub()
放在那里,你可以做一点功能,删除换行然后粘贴,而不接触(或粘贴后恢复)@"
。并在映射中调用该函数。
我不知道你是否做过10dd
,当你做一个&#34; in-line&#34;时,你希望得到什么输出?糊。但是你可以在你的功能中做很多事情来满足你的需求。
编辑,
我不知道你是如何创建映射的,并且&#34;没有工作&#34;。我在这里放了一个动画:
答案 2 :(得分:0)
您可以这样做:
v$d
(move to where you want to put what you just cut)
p or P