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

标签 eclipse vim ide 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;
    }

格式化后:

  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/

相关文章:

java - LG 设备上的 Android 6.0 (Marshmallow) 中的 new String(byte[]) 损坏?

javascript - Extjs找不到资源

c++ - vim ctag 导致 fun 的错误定义

java - 在低端笔记本电脑上进行 Java 编程的好的 IDE 是什么?

matlab - MATLAB 编辑器中的自动换行

linux - “JVM terminated. Exit code=13” 在 64 位 Linux 中使用 -vm 参数启动 Eclipse 时出错

java - 登录 Facebook 后重定向到新的 Activity (Facebook SDK 3.5.2)

Vim:跨文件创建标记?

regex - 范围内的多行 vim 正则表达式替换

javascript - WebStorm 11.0.4 存在调试问题。它给出了一个已弃用的警告,指出 node --debug 和 node --debug-brk 无效