一般来说,我喜欢在方法声明之前的行上有方法的注释标签,包括@Test的标签,如
@Test
public void testMyMethod() {
// Code
}
而不是
@Test public void testMyMethod() {
// Code
}
我在〜/ .vim / ftplugins / java.vim中有特定于java的设置。我可以添加到java.vim中,以便在@Test标记之后的第一行跳过缩进?目前vim将按照java.vim的说法缩进4个字符
@Test
____* <-- cursor placed here
虽然我更喜欢
@Test
* <-- Cursor placed here
答案 0 :(得分:0)
我在C ++中做了类似的事情,我公司的编码风格不希望命名空间块中的缩进。在this post有一个答案,根据你的问题调整它只会将'^\s*namespace.*'
位交换到你想要的模式。如果它适用于所有注释,可能只是......
function! IndentAnnotation()
let l:cline_num = line('.')
let l:pline_num = prevnonblank(l:cline_num - 1)
let l:pline = getline(l:pline_num)
let l:retv = cindent('.')
while l:pline =~# '\(^\s*{\s*\|^\s*//\|^\s*/\*\|\*/\s*$\)'
let l:pline_num = prevnonblank(l:pline_num - 1)
let l:pline = getline(l:pline_num)
endwhile
if l:pline =~# '^\s*@.*'
let l:retv = 0
endif
return l:retv
endfunction
setlocal indentexpr=IndentAnnotation()
将其保存在vimfiles中(在〜/ vimfiles中或在homedir中的窗口上或在ProgramFiles \ vim \ vimfiles中)作为indent / java.vim。如果您需要在正在缩进的行上方的行上进行注释(没有插入空行),则可以通过删除while / endwhile搜索非空白行来简化。