2009-07-27 2 views
1

Мой синтаксис -highlighting разбит на файл, какой тип конф выглядит следующим образом:изменить тип ничего из конф в Vim

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

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

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

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

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

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

ответ

3

Try:

:setf none 

или (что то же самое):

:set ft= 

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

au BufNewFile,BufRead *.markdown  set ft=none 

В качестве альтернативы, скачать синтаксис уценки из here (я не пробовал) и настроить с:

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 

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

+0

Вы отвечаете на решение «практического» вопроса. Спасибо за это! --- Кажется, проблема в другом месте, поскольку подсветка синтаксиса не получается правильно. Я использую эти коды кода: http://plasticboy.com/markdown-vim-mode/ –

+0

Я нашел причину ошибки. Файл .mkd -file имеет ошибку, которая разбивает подсветку синтаксиса, если '#' является первым символом в документе. --- Отчеты об ошибках находятся на странице http://github.com/plasticboy/vim-markdown/issues –

3
:set filetype= 

установит тип файла равным нулю.