Text 为什么文本编辑器会使粘贴代码的缩进变形?

Text 为什么文本编辑器会使粘贴代码的缩进变形?,text,text-editor,copy-paste,paste,Text,Text Editor,Copy Paste,Paste,这似乎是与许多不同的文本编辑器(或者可能是Windows中的复制粘贴机制)相关的非常普遍的问题。通常,当我复制粘贴缩进代码片段时,第一行正确缩进,其余行向右移动一级,需要手动更正(这很恼人) 例如,当我粘贴代码时: int i = 0; for(; i < 5; ++i){ System.out.println(i); } inti=0; 对于(;i

这似乎是与许多不同的文本编辑器(或者可能是Windows中的复制粘贴机制)相关的非常普遍的问题。通常,当我复制粘贴缩进代码片段时,第一行正确缩进,其余行向右移动一级,需要手动更正(这很恼人)

例如,当我粘贴代码时:

int i = 0;
for(; i < 5; ++i){
     System.out.println(i);
}
inti=0;
对于(;i<5;++i){
系统输出打印LN(i);
}
其效果通常如下所示:

int i = 0;
    for(; i < 5; ++i){
         System.out.println(i);
    }
inti=0;
对于(;i<5;++i){
系统输出打印LN(i);
}
即使使用像Eclipse这样的超高级IDE,也会出现这种问题。这个问题的原因是什么?为什么我要处理它这么多年

这个问题的原因是什么

IDE可能正试图代表您进行某种智能缩进,但在这种情况下,它看起来确实像一个bug

编辑做了一些非常相似的事情

作为我的意思示例,假设您将此文本复制到剪贴板:

System.out.println(i+1);
System.out.println(i+2);
System.out.println(i+3);
如果随后将该代码粘贴到示例中的以下位置:

int i = 0;
for(; i < 5; ++i){
    System.out.println(i);
} <-- place cursor on this line
inti=0;
对于(;i<5;++i){
系统输出打印LN(i);

}当在粘贴模式下粘贴时,在vim/gvim中没有这个问题是的,可能实际上是某种智能缩进。我会尽量把它关掉,以确保安全。非常感谢。
int i = 0;
for(; i < 5; ++i){
    System.out.println(i); < place cursor on this line
    System.out.println(i+1);
    System.out.println(i+2);
    System.out.println(i+3);
}
int i = 0;
for(; i < 5; ++i){
    System.out.println(i); < place cursor on this line
System.out.println(i+1);
System.out.println(i+2);
System.out.println(i+3);
}