关于VIM以插入模式粘贴

发布时间 2023-09-04 10:41:30作者: 皮皮祥

Paste in insert mode?

是否可以在Vim中以插入模式粘贴?


在插入模式下,按CTRL-R {register}

例子:

  • CTRL-R *将插入剪贴板的内容
  • CTRL-R"(未命名的寄存器)插入最后的删除或取消。

要在vim的帮助中找到此内容,请键入:h i_ctrl-r

  • 是的,我直到最近才了解CTRL-R及其非常有用的知识。
  • CTRL-R *仅在GVIM或经过编译以与x交互的版本中起作用。键入vim --version并查找+xterm_clipboard。如果没有,则需要其他版本的vim。 (vim.wikia.com/wiki/Accessing_the_system_clipboard)
  • 实际上,您只需要+clipboard,但是如果您有+xterm_clipboard,则无论如何都应该有。在某些操作系统上,xterm_clipboard不适用。
  • 嗯,我使用C-r +从Windows上的系统剪贴板中粘贴(使用GVim Portable)?从未听说过*注册。
  • @ kitsu.eb在X系统上,使用鼠标中键单击即可粘贴*寄存器,而+是传统的复制/粘贴功能。 standard.freedesktop.org/clipboards-spec/clipboards-latest.txt

如果您不希望Vim破坏输入的粘贴文本中的格式,则可能还需要考虑使用::set paste。这样可以防止Vim重新标记您的代码。粘贴完成后,:set nopaste将恢复正常行为。

通过向.vimrc中添加set pastetoggle=之类的内容,也可以通过一个键来切换模式。有关切换自动缩进的更多详细信息,请参见此处。

  • 我如何关闭:set粘贴?
  • :set nopaste将禁用粘贴模式
  • @ Tech4Wilco作为记录,如果将no设置为几乎所有设置,它将禁用它::set noexpandtab和:set expandtab彼此相反。
  • @JamesSnyder更好的方法是:set paste!可能在命令历史记录中将粘贴设置得非常接近,因此您只需按:,然后向上箭头并添加!。
  • 只是好奇-:set paste!的优点是什么或不同之处:)
  • vim中命令末尾的!用于打开和关闭命令。这样,您不必键入:set nopaste,而是可以向上滚动历史记录并再次运行相同的命令(:set paste!)。
  • set paste在我的vim设置中搞砸了很多事情。新行缩进不正确,完成退出工作。 ??????♂?
  • @blockloop您应该在粘贴时启用它,然后立即禁用它。