Vim не распознает автоматически файлы groff (manpage)

У меня есть:

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Dec  1 2011 03:25:24)

используя тестирование Debian.

Я играл со старой справочной страницей, которую написал, и заметил, что vim (первоначально я использовал gedit для ее написания, но переключился на vim) не распознает ее как тип файла nroff/groff при загрузке или с помощью:

:filetype detect

Конечно, он отлично подсвечивает синтаксис:

:set filetype=groff

У кого-нибудь еще есть такое поведение, и если да, то найдите исправление?

Кстати, он правильно распознает скрипты html, bash и python и устанавливает правильную подсветку синтаксиса. Просто кажется, что отказываются от файлов groff, которые сохраняются без суффикса типа [FILENAME].1.

Чирио, Нарни


person narnie    schedule 09.02.2012    source источник
comment
Включает ли ваш ~/.vimrc какие-либо filetype команды? (Посмотрите также на команды autocmd — это может быть не первое слово в строке.)   -  person sarnold    schedule 09.02.2012
comment
Да, включен плагин типа файла. Другие типы файлов распознаются нормально.   -  person narnie    schedule 09.02.2012
comment
Мой ~/.vimrc также имеет filetype on, filetype indent on, filetype plugin on и получает правильный тип файла при тестировании, например. /usr/share/man/man1/ls.1.gz. (Vim 7.3, но упакованная Ubuntu.)   -  person sarnold    schedule 09.02.2012
comment
Ура, мой тоже распознает /usr/share/man/man1/ls.1.gz, но готов поспорить, что он основан на имени файла. Обычно я не следую соглашениям .sh, .py или .1 при первоначальном написании своих сценариев, кода Python и справочных страниц соответственно. Возможно, определение типа файла зависит только от суффикса файла, а не от содержимого. Он делает это со сценариями bash и python по содержимому, не полагаясь на суффикс файла.   -  person narnie    schedule 09.02.2012


Ответы (2)


Vim может определить тип файла как по имени файла, так и по контексту. Похоже, что в этом случае vim смотрит только на имя файла. Вы можете написать свой собственный сценарий определения типа файла, чтобы определить файлы этого типа на основе контекста. В справке vim есть несколько основных инструкций о том, как это сделать. По сути, вы можете просто написать скрипт vim, который определяет тип файла и помещает его в $VIMRUNTIME/scripts.vim.

person David Brown    schedule 09.02.2012
comment
Именно это начало приходить мне в голову. - person narnie; 09.02.2012

Добавьте в свой ~/.vimrc файл:

au BufNewFile,BufRead *.groff set filetype=groff

Или любое расширение, которое вы используете для определения ваших файлов groff.

person stephane    schedule 06.05.2013