Найдите, какой тип файла загружается в vim

224

Как только я загружу любой файл в vim, он попытается обнаружить файл и выделить его цветом, если это возможно.

Я хочу знать команду vim, которая скажет мне, какой ftplugin или плагин / тип файла имеет тип vim, чтобы выделить файл.

ruturaj
источник
Разве vim не делает это автоматически?
2010 года
Если вы поместите vimscript в ~ / .vim / ftplugin /, он получит этот vimscript при загрузке файла с соответствующим типом файла. Так положил setlocal cursorlineв ~/.vim/ftplugin/python.vimи вы будете иметь текущую строку подсветки в питоне файлах. Смотрите :help ftpluginи:help after
idbrii

Ответы:

365

:set filetype?

Hobbs
источник
39
Вы можете сохранить несколько нажатий клавиш и просто использовать:set ft?
Мэтью Рэнкин
35
:se ft?- Я выигрываю. ;)
sjas
39
:se ft? Я выиграл!
Фабио Сантос
SO требует минимальной длины комментария, поэтому может быть не очевидно, что самый короткий заканчивается после t. ? необязательно.
reergymerej
15

Вы можете также добавить в свой тип файла статус строки или заголовок окна , используя %yи %Yэлементы. Видеть

:help 'statusline'
:help 'titlestring'
Nefrubyr
источник
11

&filetype для использования скрипта

Минимальный пример:

echo &filetype

Более реалистичный пример использования:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif

&синтаксис работает для всех опций: /vi/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

Сиро Сантилли 郝海东 冠状 病 六四 事件 法轮功
источник
2

Когда я захотел найти тип файла, это было потому, что у меня было расширение .ipy, модифицирующее скрипт ipython. Приведенные выше вопросы и ответы отлично показали, что расширение ipython не рассматривается как python (что очевидно). Таким образом, я хотел принудительно установить тип файла, и я нашел это на когда-либо полезном сайте vim. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Добавление ниже к вашим работам .vimrc

au BufRead,BufNewFile *.ipy set filetype=python
Павел
источник
2

Поскольку вы задаете / ищете этот вопрос в первую очередь, я предполагаю, что вы делаете это, потому что ваш vim как-то не подсвечивает правильный синтаксис для вас автоматически, и вы пытаетесь выяснить, почему и как это исправить.

Команда :set filetype?в выбранном ответе в основном спрашивает у vim "эй, какой тип, по вашему мнению, является текущим файлом". И если vim не отображает правильный цвет / выделение, скорее всего, его ответом для вас является отображение этого filetype=в нижней части консоли, то есть vim не знает тип файла. Это только половина вашего квеста.

Логично, что следующим шагом будет vim: «просто выделите его, используя, например, синтаксис ps1». Вы можете сделать это, набрав :set filetype=ps1, теперь vim выделит текущий файл, используя стиль ps1 (при условии, что вы уже загрузили правильный файл синтаксиса powershell и поместили его в ваш ~ / .vim / синтаксис ).

С этого момента вы, возможно, захотите использовать авто-синтаксис-подсветку. Решение состоит в том, чтобы поместить соответствующий скрипт обнаружения в вашу папку ~ / .vim / ftdetect. Например, если вы хотите выделить все сценарии PowerShell .ps1, .psm1 и т. Д., Поместите этот файл в ~ / .vim / ftdetect.

Теперь это счастливый конец.

RayLuo
источник