vim: Может ли автоматическое завершение фигурных скобок в java-файле столь же элегантно, как в lisp-файле с помощью slimv?
Я давно пользуюсь slimv и обнаружил, что он отлично работает в автоматических брекетах.
Однако, пока я редактировал файл Java, я пытался добавить этот код в свой vimrc
"Add the closing brace only at the end of the line
function! ConditionalPairMap(open, close)
let line = getline('.')
let col = col('.')
if col < col('$') || stridx(line, a:close, col + 1) != -1
return a:open
else
return a:open . a:close . repeat("\<left>", len(a:close))
endif
endf
inoremap <expr> ( ConditionalPairMap('(', ')')
inoremap <expr> { ConditionalPairMap('{', '}')
inoremap <expr> [ ConditionalPairMap('[', ']')
Что не так умно, как у Slimv.
Есть поддержка SlimV для файлов Java?
2 ответа
Решение
Попробуй Vim-autoclose. Возможно, будет работать на Java.
Я использовал это некоторое время сейчас. Это прекрасно работает для PHP и JS. Только случайная проблема при вставке кода. Но легко решается удалением нескольких закрывающих скобок в конце файла.
Есть несколько плагинов, которые обеспечивают автоматическое закрытие фигурных скобок и, вероятно, более надежны, чем ваше упрощенное отображение. Смотрите тему Автоматически добавлять закрывающие символы в Vim Tips Wiki для обсуждения и списка плагинов.