Vim在复制粘贴时插入注释

exc*_*ray 47 vim

当我将下面的行复制到Vim时,

" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
Run Code Online (Sandbox Code Playgroud)

Vim自动添加"到所有线路.如何摆脱这种情况并将其粘贴?

In Vim

 66     " OmniCppComplete
 67     " let OmniCpp_NamespaceSearch = 1
 68     " let OmniCpp_GlobalScopeSearch = 1
 69     " let OmniCpp_ShowAccess = 1
Run Code Online (Sandbox Code Playgroud)

Cas*_*bel 87

两个主要选择:

  • 直接从寄存器放入,无需进入插入模式,使用  "+p
    • " 表示"使用以下登记册";
    • + 指的是剪贴板,和
    • p 放!

如果您在Linux中使用中间点击选择粘贴,请使用*而不是+引用它.

  • 在进入插入模式进行粘贴之前,请运行:set paste.离开插入模式后将其关闭:set nopaste.

  • 只有``:set paste``部分对我有用(vim在没有X的mac iTerm2上通过SSH连接在Ubuntu盒子上运行,因此服务器端可能没有剪贴板). (15认同)
  • 我根本不理解``+ p`,但是`:set paste`方法很完美. (3认同)

小智 22

在Vim中进入模式:set paste.然后按Ctrl+ Shift+ V.

它会工作.

不要通过编辑和粘贴来粘贴.它不会起作用.

  • 我是从mac转到远程ubuntu的.它工作,但我不得不在两个命令之间输入`insert mode` (2认同)
  • 您不应该在Ctrl + Shift + V之前按“ i”进入插入模式吗? (2认同)

D M*_*Mac 9

到目前为止,每个人都没有抓住重点。当你开始一个新行时,Vim 会自动插入注释字段(无论是粘贴还是输入)。

您至少使用 r 和 o 选项设置了 formatoptions。要查看您的设置,请键入

:set formatoptions?
Run Code Online (Sandbox Code Playgroud)

要删除这些选项,请键入

:set formatoptions=
Run Code Online (Sandbox Code Playgroud)

然后粘贴将按您期望的方式工作。

类型

:help fo-table
Run Code Online (Sandbox Code Playgroud)

查看 formatoptions 中的每个字母的含义。