Fra*_*eng 6 eclipse ide vim editor
我正在使用Vim编辑Java文件,但我发现Vim格式化Java文件的方式与Eclipse非常不同.
如果我选择以下代码并按=,Vim不会按照我想要的方式格式化代码.谁能帮我?
格式之前:
case RINGTONE_PICKED: {
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
handleRingtonePicked(pickedUri);
break;
}
case PHOTO_PICKED_WITH_DATA: {
if (mPhotoEditorView != null) {
final Bitmap photo = data.getParcelableExtra("data");
mPhotoEditorView.setPhotoBitmap(photo);
} else {
// The contact that requested the photo is no longer present.
// TODO: Show error message
}
break;
}
Run Code Online (Sandbox Code Playgroud)
格式化后:
case RINGTONE_PICKED: {
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
handleRingtonePicked(pickedUri);
break;
}
case PHOTO_PICKED_WITH_DATA: {
if (mPhotoEditorView != null) {
final Bitmap photo = data.getParcelableExtra("data");
mPhotoEditorView.setPhotoBitmap(photo);
} else {
// The contact that requested the photo is no longer present.
// TODO: Show error message
}
break;
}
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
case RINGTONE_PICKED: {
Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
handleRingtonePicked(pickedUri);
break;
}
case PHOTO_PICKED_WITH_DATA: {
if (mPhotoEditorView != null) {
final Bitmap photo = data.getParcelableExtra("data");
mPhotoEditorView.setPhotoBitmap(photo);
} else {
// The contact that requested the photo is no longer present.
// TODO: Show error message
}
break;
}
Run Code Online (Sandbox Code Playgroud)
VIM(以及任何其他编辑器或 IDE)中的缩进是由某人编码的缩进规则进行的。无法保证任何两个系统都会遵循相同的缩进实践,因为周围存在不同的缩进实践。
我还使用 VIM 来对 Java 文件进行少量编辑,除了官方发行版中包含的脚本之外,我不知道还有任何常见的替代 Java 缩进脚本。如果您熟悉 VIM 脚本,您可以尝试根据需要编辑缩进脚本。它位于$VIMRUNTIME/indent/java.vim.
顺便说一句,你的例子有点不常见。对于 switch 语句的情况,不需要使用花括号。我猜想 VIM 缩进脚本会考虑块类型来缩进块,并且会与这种不常见的块混淆。Netbeans 也对这个例子有点困惑,它以合理的方式对齐 case 块,但 switch 语句的右大括号完全不对齐。这种奇怪的行为在默认的 VIM 缩进中不会那么常见。实际上,如果你删除 case 语句的大括号,VIM 缩进可以很好地对齐语句。