2012-06-08 3 views
3

Может ли Vim определить тип файла буфера с содержимым, но который еще не имеет имени (еще не сохранен)? :filetype detect не много.Vim filetype detecting

ответ

0

В помощь для vim говорит, он работает в некоторых случаях, например, если вы наберете

#!/bin/sh 

, то он обнаружит, как sh сценарий.

+0

Не имеет значения; Я прошу об обнаружении ft вообще. – Rook

0

Если файл содержит #! на линии один, это легко.

Например:

" finish if the filetype was detected 
if did_filetype() 
    finish 
endif 

" Ruby & Python ftplugins 
if getline(1) =~ '^#!.*ruby' 
    setfiletype ruby 
elseif getline(1) =~ '^#!.*python' 
    setfiletype python 
endif 
+0

Нет; Я прошу об обнаружении ft вообще. – Rook

4

Большинство типы файлов обнаруживаются по имени файла (и/или местонахождение), некоторые (в основном те, с #! притон линии а) их содержание.

Если вы еще не хотите сохранять буфер, но имеете обнаружение, вы можете назвать буфер через :file name.ext. Затем будет обнаружено обнаружение через :filetype detect.

Если вы просто хотите подсветку синтаксиса (и соответствующие параметры файла) быстро, просто вручную установите тип файла с помощью :setf name.

+0

Да. Дело в том, что меня в основном интересует fortran filetype, у которого есть (под этим именем) два варианта - современный и другой. И тот, который выбирается, зависит от некоторых предварительно заданных переменных, которые зависят от (не имеют понятия о том, на что они зависят). Поэтому просто выбор типа файла на самом деле не работает для меня. Мне нужен Вим, чтобы сделать это. И я пытаюсь избежать именования файла. – Rook

+0

Хорошо, теперь вы смешиваете две вещи. Обнаружение несохраненного буфера должно быть получено. Для вариантов Fortran, похоже, что Vim уже имеет сложное обнаружение; читайте на ': help ft-fortran-syntax'. Если это вас еще не устраивает, вам нужно написать/расширить обнаружение, ср. ': help new-filetype-scripts' –

0

Вы можете сделать это вручную.

:set filetype=EXT 

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

Смежные вопросы