How to remove indent after annotation in Java

冷暖自知 提交于 2019-12-11 05:37:36

问题


I have @Override annotation in my java code, but vim indent the next line automatically like this:

@Override
    public String toString()
    {
        //some code
    }

How can I get rid of the indent?

As far as I know, the indent file java.vim in /usr/share/vim/vim73/indent has addressed the problem, yet the problem still remains. Here's the code in java.vim:

  " If the previous line starts with '@', we should have the same indent as
  " the previous one
  if getline(lnum) =~ '^\s*@\S\+\s*$'
     return indent(lnum)
  endif

回答1:


Edit:

I just tested this on version 7.3.918 with both snippets and they both work. This means that something is wrong with your vim setup. Take a look at your vimrc and see if anything is wrong.

Also look at the value returned by :set ft it should return filetype=java. If this does not happen make sure you have filetype plugin indent on in your vimrc and check to see if this fixes your problem.

Also the below snippet does not to be used because vim does this by itself in later versions.


I have this in the file ~/.vim/after/indent/java.vim which was taken from here

function! GetJavaIndent_improved()
    let theIndent = GetJavaIndent()
    let lnum = prevnonblank(v:lnum - 1)
    let line = getline(lnum)
    if line =~ '^\s*@.*$'
        let theIndent = indent(lnum)
    endif

    return theIndent
endfunction
setlocal indentexpr=GetJavaIndent_improved()

This seems to work for indenting java annotations properly.



来源:https://stackoverflow.com/questions/16228548/how-to-remove-indent-after-annotation-in-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!