关于vim:如何从具有相同格式的剪贴板粘贴源代码

How do I paste source code from clipboard with same formatting

本问题已经有最佳答案,请猛点这里访问。

我不知道为什么但是如果我通过CTRL + V + P快捷方式从某些外部程序复制代码,Vim总是搞乱我的格式化。 例如,这段XML代码

1
2
3
4
5
<dependency>
    <groupId>org.jboss.test</groupId>
    richfaces-selenium</artifactId>
    <scope>test</scope>
</dependency>

像这样复制到Vim(对不起|字符,来自indentLine插件)

1
2
3
4
5
<dependency>
    │   │   │   │   │   <groupId>org.jboss.test</groupId>
    │   │   │   │   │   │   │   │   richfaces-selenium</artifactId>
    │   │   │   │   │   │   │   │   │   │   │   <scope>test</scope>
    │   │   │   │   │   │   │   │   │   │   │   │   │   </dependency>

那么我该如何解决这个问题呢? 当我粘贴Java或Python代码时,也会发生类似的事情。


在Vim中使用paste模式,禁用自动缩进。 这可以在插入模式下完成。:help paste


我一直有这个问题。 就个人而言,我还没有尝试修复我粘贴的方式,但是在粘贴之后我会快速修复。

在您通过代码后,按Esc几次并执行此命令

1
gg=G

基本细分:

1
2
3
gg --> Go to beginning of File
=  --> Indent
G  --> Go to end of File

应该根据.vimrc上的缩进设置正确缩进所有内容(如果没有,那么它只会执行基本的缩进设置缩进)。