VIM注释掉我粘贴的内容


14

尝试在vim上复制此要点时遇到了这个问题:https : //gist.github.com/w0ng/3278077

在此处输入图片说明

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

可能与以下事实有关:如果我在插入模式下写评论并按Enter,则以下行会自动添加评论。

我该如何摆脱这种行为?

Answers:


26

粘贴之前进入粘贴模式:

:set paste

切换回“普通”模式:

:set nopaste

6
或:set粘贴!切换:)
valbaca

@valbaca您可以使用反引号code blocks在评论中创建
Izkata

我需要相反的命令!

11

除了Mat提到paste选项之外,您还可以直接从VIM访问X剪贴板:

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

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

有关更多信息,请参见文档:help x11-selection)。


6

这是正在发生的事情。当您在注释行中时,有一些Vim格式化选项会自动注释掉新行。这些选项中的一些通常是默认启用的。例如,

# a comment<CR>
# 

如您所见,新行自动带有注释字符。您可以通过从中删除c和禁用这些选项中的大多数。请参阅有关这些选项的更多信息。rformatoptions:h fo-table

:set formatoptions-=cr

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


3

我最喜欢的是使用put命令。

  • :put* 从当前行的选择中粘贴
  • :put+ 从缓冲区粘贴到当前行

"*p/ "+p也不错,但是:pu[t]有一些优点:

  • 它总是按行粘贴
  • 您可以添加其他参数来控制插入位置:
    • :$put+ 在最后一行之后粘贴
    • :0put+ 粘贴在文件的开头

1

作为补充,如果您有任何包含此文件的文件,则可以通过进入“垂直可视”块模式来摆脱它

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

有时候,我发现此操作比取消设置粘贴模式,粘贴和取消设置粘贴模式要快。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.