2009-01-22 18 views
13

我想其他编辑器足够聪明,可以将这些东西关闭粘贴,但在终端中使用vim时,无法区分粘贴和实际打字。vim中的智能缩进(通常很棒)在粘贴一段代码时会造成灾难

你有什么样的解决方案或解决方法?

补充:还有一个设置可以让评论自动在下一行继续。缩进至少不会改变代码的语义,但自动注释延续真的会把事情搞砸。想想看,我应该完全放弃这一点 - 任何人都知道这个选项被称为什么?

回答

21

:设置贴是要走的路,但如果你忘了,因为我经常这样做,那么,如果你使用的是带有{语言}为块的开/关,然后做a =第一个{或last}会重新应用缩进。

15

:设置粘贴

+1

:设置nopaste - 打开缩进 – 2009-01-22 19:53:58

+0

哦,谢谢。所以你必须记得在粘贴之前和之后设置它并取消设置?我想没有一种程序化的方式来区分粘贴和打字就没有更多的自动化。 – dreeves 2009-01-22 19:57:02

+0

您可以使用密钥映射将其绑定到一组密钥。但我从来没有试过这个。 http://www.shlomifish.org/lecture/Vim/beginners/slides/slide30.html – 2009-01-22 20:00:36

7

添加到您的.vimrc,并用它来与F2键切换前的状态粘贴后您添加的代码块:

1

另一种方式来做到这一点,假设你有你的系统剪贴板正确设置是做

"*p 

这将从系统剪贴板粘贴。

检查您的vim --version。在OS X上,你需要+clipboard和Linux +xterm_clipboard,我相信。

如果你使用的是OS X,你总是可以使用brew install macvim并且使用mvim -v而不是捆绑的Vim(它不会与+clipboard一起编译)。