命令 p 粘贴在光标下方, P 粘贴在光标上方。粘贴在光标所在行的命令是什么?
答案 0 :(得分:35)
这一切都取决于您粘贴的寄存器中的数据类型。如果数据是面向行的数据(例如,以 y y 拉出),它将被粘贴为光标上方或下方的整行。如果数据是面向字符的(用例如 y 2 w ),那么它将被粘贴在当前光标位置处或之前线。
有关寄存器类型与put命令之间交互的更多信息,请参阅:help linewise-register
。
答案 1 :(得分:17)
gvim中的修改菜单列出了以下内容:
粘贴= “ + g P
Put Before = [ p
Put After = ] p
如果您在Windows中运行vim,则可以执行以下操作以获取 Ctrl + C 和 Ctrl + V 按预期工作:
source $VIMRUNTIME/mswin.vim
behave mswin
答案 2 :(得分:8)
如果您想保持当前行不变,请粘贴到行的上方或下方。
如果要覆盖当前行,则必须先删除它,这意味着以下行取代它,然后粘贴到新当前行上方。
有多种方法可以做到:
"_ddP
"_dd
删除“黑洞寄存器”中的整个当前行,以下行现在是当前行。
P
将未命名寄存器的内容放在当前行的上方。
Vp
V
让您进入 VISUAL LINE 模式并直观地选择整个当前行
p
将选择内容替换为未命名注册的内容
S<C-r>"
S
删除当前行的内容并将您置于 INSERT 模式
<C-r>"
放置未命名寄存器的内容
最后两个选项有一个有趣的副作用:前一行的内容被放入未命名的寄存器中,这使得无法使用相同的内容进行多个粘贴。
幸运的是,你可以解决这种情况:
第一个解决方案中提到的“黑洞寄存器”很有用......就像一个黑洞。无论你投入的是什么,它都会永远消失,所以你可以继续使用p
和P
,但是有一定程度的信心,从粘贴到粘贴,未命名的寄存器仍然是相同的。
Vim允许您访问26个字母寄存器,您可以使用这些寄存器来重复保存宏或...粘贴内容。
以第二个解决方案作为起点,首先将整行记录到"a
注册"ayy
,然后在另一行注册V"ap
。
但以上所有假设您要粘贴的文本是实际行。 Vim区分了“line-wise”和“character-wise”:它不会让你在一个字符方式的上下文中粘贴一行或者反过来。
使用yy
整行整行,保持其行方式或字符明智性,并且您将无法在同一行上的两个字符之间p
。为此,你需要确保你的东西不会被Vim解释为按行。例如,假设您在第一行的第一个字符上,并想要ipsum dolor
并将其置于lorem
和sit
之间的正常位置:
ipsum dolor
lorem sit amet
您应该输入"ayee
将您的已拨动文本放入注册"a
,将光标放在需要的位置并输入"aP
。
答案 3 :(得分:2)
要在插入模式下粘贴,只需按 Control + R 即可。然后输入寄存器,例如移 + +
要在命令模式下粘贴,请按 P ,但是您必须确保您的线路没有换行符(例如0v$hy
拉出来),否则它会出现在光标上方。
视觉模式相同,请参阅:Vim SE上的How to paste a line in a vertical selection block?
答案 4 :(得分:1)
您可以使用D从当前光标位置删除到行尾,将p删除到新光标位置。
即剪切和粘贴整行使用^ D和p。
答案 5 :(得分:1)
我需要&#34;演员&#34;我经常将内容注册到某个(字符/行/块)模式,然后为它写了UnconditionalPaste plugin。它提供了gcp
,glp
等内置粘贴命令的替代方法,这些命令强制使用某种模式(此时此主题还有几种变体,例如粘贴逗号或查询字符)
有了它,您可以使用gcp
/ gcP
在光标位置之后/之前粘贴,无论您如何拉动文本。
答案 6 :(得分:0)
我不确定有没有。我试图查找文档并浏览了以下三个文档:
不幸的是,这三个只有你列出的两个命令。特别是,第三个链接表示The commands to paste are p and P...
答案 7 :(得分:0)
(我知道这个帖子已经老了,只是离开了这个,希望这可以帮助别人)
受@ wbg上述关于删除换行符的评论的启发,我将这些添加到我的映射中:
nnoremap <leader>p :let @"=substitute(@", '\n\+$', '', '')<CR>p
inoremap <leader>p <esc>:let @"=substitute(@", '\n\+$', '', '')<CR>pa
当我有一个带有一些SQL的文件(逐行)时,这很有用,我不得不深入研究代码。
答案 8 :(得分:0)
将行划分为2,无论您要插入哪个
粘贴它们之间的部分
如此处所述(Delete newline in Vim)
工作,但很乏味,不得不考虑,查找它 =&GT; vi和emacs是垃圾软件
答案 9 :(得分:0)
Shift + v 将选择整行,但您不想这样做。而是从行的开头按 CTRL + v ,然后按 $ 选择行的末尾。 yank y 并粘贴 p 。