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 для обсуждения и списка плагинов.

Другие вопросы по тегам