将文本块从外部源粘贴到Vi Editor的最快方法

例如,从网页上复制conf部分,然后将其粘贴到您在Vi中打开的.conf文件中。

或者如果您使用系统寄存器,则可以在插入模式下进行粘贴:

"*p 

这会将系统的剪贴板粘贴到光标所在的位置。 不需要插入模式。

  1. 进入插入模式(类型i
  2. 类型: ctrlshiftv

有一点要记住,有时Vim自动缩进文本。 这大多是好的,但有时它会弄脏你粘贴到文档中的文本。

如果您的缩进是错误的,请删除粘贴的文本,请键入:set paste ,再次粘贴文本,完成后输入:set nopaste

真正的答案是:

  1. :set paste

  2. 进入插入模式:点击

  3. 粘贴: Command + vControl + v

  4. :set nopaste

最简单的方法就是复制文本,然后在INSERT模式下将它粘贴到VIM中。

如果您使用的是gvim,请按CTRL-R,然后在插入模式下选择*或+。 它将粘贴上次复制的文本。

Ctrl-V / Apple-V? 只要确保你在vi(i)的插入模式下,

在插入模式下,系统会粘贴快捷键,或者如果您的源是另一个文件,则可以键入:r,并将其粘贴到光标的当前位置。

在* nix上最简单的方法是用鼠标选择它,然后在vim中插入模式后,用鼠标中键将它粘贴到vim中。

如果您使用的是触摸板,则中键可能是左右键

最快捷的方法是使用您的系统使用的任何粘贴键(例如⌘-v for mac, Ctrl-V for windows等)以插入模式粘贴。 一些终端需要你使用Shift-Ctrl-V 。 但是,你可以粘贴到命令行是如何粘贴到vim。 然而,这可能会导致缩进问题,这是一个问题:set paste进来。进出这个的最快方法是设置pastetoggle(请参阅:help pastetoggle )。 例如,我使用

 set pastetoggle=<leader>p 

使用pastetoggle而不是映射的原因是因为如果您设置了一个映射插入模式,它将在粘贴模式下逐字读取。 因此,如果你:set paste ,进入插入模式,并输入任何imap映射将不会完成,而是文字字符将被插入。 随着pastetoggle你可以避开,因为这是一个内置的功能。

正如其他人所说,如果你在插入模式,你也可以使用<Cr>* ,但为什么? 您的正常粘贴流程最有可能更好。 了解*注册和<Cr>是一个重要的技能,但是。 你可以阅读更多关于他们:help registers:help i_CTRL-R 。 你也可以用"*p但如果你打字的时候速度更快,那么你的正常粘贴给我留下了深刻的印象,当然你可以把它映射到别的东西上,但是又是…为什么?你应该习惯快速进入用i, I, a, A, o, O, s, S, c, and C插入模式,这样就可以做到精确。