gpt4 book ai didi

eclipse - 如何在 Vim 中像 Eclipse 一样格式化 Java 文件

转载 作者:行者123 更新时间:2023-12-02 15:25:59 26 4
gpt4 key购买 nike

我正在使用 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;
}

格式化后:

  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;
}

这就是我想要的:

    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;
}

最佳答案

VIM(以及任何其他编辑器或 IDE)中的缩进是由某人编码的缩进规则进行的。无法保证任何两个系统都会遵循相同的缩进实践,因为周围存在不同的缩进实践。

我还使用 VIM 来对 Java 文件进行少量编辑,除了官方发行版中包含的脚本之外,我不知道还有任何常见的替代 Java 缩进脚本。如果您熟悉 VIM 脚本,您可以尝试根据需要编辑缩进脚本。它位于 $VIMRUNTIME/indent/java.vim

顺便说一句,你的例子有点不常见。对于 switch 语句的情况,不需要使用花括号。我猜想 VIM 缩进脚本会考虑 block 类型来缩进 block ,并且会与这种不常见的 block 混淆。 Netbeans 也对这个例子有点困惑,它以合理的方式对齐 case block ,但 switch 语句的右大括号完全不对齐。这种奇怪的行为在默认的 VIM 缩进中不会那么常见。实际上,如果你删除 case 语句的大括号,VIM 缩进可以很好地对齐语句。

关于eclipse - 如何在 Vim 中像 Eclipse 一样格式化 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com