Найдите, какой тип файла загружается в vim - PullRequest
200 голосов
/ 06 мая 2010

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

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

Ответы [ 5 ]

321 голосов
/ 06 мая 2010

:set filetype?

14 голосов
/ 06 мая 2010

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

:help 'statusline'
:help 'titlestring'
6 голосов

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

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

echo &filetype

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

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

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

3 голосов
/ 31 октября 2013

Когда я захотел найти тип файла, это было потому, что у меня было расширение .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
1 голос
/ 23 декабря 2016

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...