Чтобы изменить TYPE на ничто из conf в Vim

Мой синтаксис -highlighting нарушен для файла, тип которого является следующим:

Файл, где подсветка синтаксиса не работает

http://files.getdropbox.com/u/175564/bugs/vim-bug-type.png

Подсветка синтаксиса работает для всех остальных файлов с расширением.markdown. Однако единственное различие между этими файлами состоит в том, что тип других файлов - ничто, в то время как тип файла, который имеет ошибку, - это Conf.

Файл, где работает подсветка синтаксиса

http://files.getdropbox.com/u/175564/bugs/vim-bug-syntax2.png

Как вы можете изменить тип на ничего с Conf в Vim?

2 ответа

Решение

Пытаться:

:setf none

или (эквивалентно):

:set ft=

Если вы хотите сделать это автоматически, вам нужно настроить определение синтаксиса. Создайте файл (если он не существует): vimfiles/after/filetype.vim или ~/.vim/after/filetype.vim. В этом файле добавьте следующую строку:

au BufNewFile,BufRead *.markdown        set ft=none

Кроме того, скачайте синтаксис уценки отсюда (я не пробовал это) и настройте с помощью:

au BufNewFile,BufRead *.markdown        set ft=mkd

Для дополнительной информации:

:help :setf
:help 'filetype'
:help :autocmd
:help BufRead
:help BufNewFile

Для информации проблема возникает потому, что .markdown расширение не распознано, поэтому Vim просматривает содержимое, чтобы определить тип файла. Предположительно, в вашем файле есть что-то похожее на файл конфигурации, так что он делает все возможное. Догадка осуществляется в системе filetype.vimкак правило, в c:\vim\vim72 или /usr/share/vim/vim72/filetype.vim (я думаю) и выглядит так:

" Generic configuration file (check this last, it's just guessing!)
au BufNewFile,BufRead,StdinReadPost *
    \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
    \    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
    \   || getline(4) =~ '^#' || getline(5) =~ '^#') |
    \   setf conf |
    \ endif

Это проверяет, начинается ли любая из первых пяти строк с # и если они делают, и никакой другой тип файла не был сопоставлен, он устанавливает тип файла в conf,

:set filetype=

установит тип файла в none.

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