Команда запуска (:normal) при запуске vim с файлами.java

Я хочу поставить линию в моем .vimrc файл, чтобы он сложил /* ... */ как комментарии на автозапуск с *.java файлы.

До сих пор я придумал это, но он не хочет работать (хотя команда работает в vim)

autocmd BufReadPre,BufReadPost,FileReadPre,FileReadPost *.java execute ":normal :%g/\/\*/normal! zf%"

1 ответ

Решение
  • :global команда уже является командой Ex; нет необходимости :normal (который для таких вещей, как j, zf, /). Это должно работать:
:autocmd BufReadPre,BufReadPost,FileReadPre,FileReadPost *.java %g/\/\*/normal! zf%
  • Вам, вероятно, не нужно запускать это как до, так и после чтения файла.
  • Vim уже может определить тип файла; зачем дублировать шаблон файла для файлов Java?! Лучше использовать FileType событие:
:autocmd FileType java %g/\/\*/normal! zf%
  • Исходя из вашего предыдущего вопроса, похоже, вы хотите настроить сложное ручное складывание. Это довольно необычно, и я бы рекомендовал против этого. В Java есть встроенное свертывание, основанное на подсветке синтаксиса (хотя не для блоков комментариев, но вы можете получить это из syntax/c.vim); вы включаете его через
:setlocal foldmethod=syntax

Если вам действительно нужно нестандартное складывание, :help fold-expr это путь

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