VIM 注释掉我粘贴的内容

VIM 注释掉我粘贴的内容

当我试图在 vim 上复制这个要点时,我得到了这个:https://gist.github.com/w0ng/3278077

在此输入图像描述

我注意到到处都有相同的行为:如果我粘贴包含注释的内容,则注释后面的所有内容都会被粘贴为注释。

也许这与以下事实有关:如果我在插入模式下编写注释并按 Enter 键,则以下行会自动附加注释。

我怎样才能摆脱这种行为?

答案1

粘贴前进入粘贴模式:

:set paste

要切换回“正常”模式:

:set nopaste

答案2

paste在选项旁边马特提到的,你也可以直接从VIM访问X剪贴板:

  • "*p插入 X11 选择
  • "+p插入 X11 剪贴板

您需要一个支持 X11 的 VIM 版本(在 Debian 及其衍生版本中您需要安装vim-gtkvim-gnome软件包)。

欲了解更多信息,请参阅文档( :help x11-selection)。

答案3

这就是发生的事情。 Vim 的格式化选项可以在您位于注释行时自动注释掉新行。其中一些选项通常默认启用。例如,

# a comment<CR>
# 

正如您所看到的,新行自动添加了注释字符。您可以通过从设置中删除c和来禁用大部分选项。有关这些选项的更多信息,请参阅 参考资料。rformatoptions:h fo-table

:set formatoptions-=cr

Vim 无法区分使用终端仿真器粘贴机制粘贴的文本和您键入的文本。设置粘贴选项 ( set paste) 告诉 Vim 期望粘贴文本并禁用任何不需要的格式选项。

答案4

作为一个侧面答案,如果您有任何包含此内容的文件,您可以通过进入垂直视觉块模式来摆脱它

ctrl+v然后使用箭头键 / hjkl 导航要删除的部分,然后点击d

有时我发现这比撤消设置粘贴模式、粘贴和取消设置粘贴模式更快。

相关内容