Команда запуска (: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
это путь