这似乎是与许多不同文本编辑器相关的非常通用的问题(或者可能是Windows中的复制粘贴机制?)。通常当我复制粘贴缩进代码的片段时,我最终会使第一行正确缩进,其余行向右移动一级并需要手动校正(这很烦人)。
例如,当我粘贴代码时:
int i = 0;
for(; i < 5; ++i){
System.out.println(i);
}
效果通常如下:
int i = 0;
for(; i < 5; ++i){
System.out.println(i);
}
即使使用Eclipse等超高级IDE,也会出现此问题。这个问题的原因是什么?为什么我这么多年来不得不处理它?</ p>
答案 0 :(得分:3)
该问题的原因是什么
IDE可能正在尝试代表您进行某种智能缩进,但在这种情况下,它看起来确实是一个错误。
Zeus编辑器做了类似的事情。
作为我的意思的一个例子,假设您将此文本复制到剪贴板:
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
你应该最终得到这个代码(这就是宙斯所做的):
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);
}
那是智能缩进。
为什么我这么多年不得不处理它?</ p>
IDE中应该有一个选项可以关闭此功能。宙斯肯定有这样的选择。