1

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

Когда вы создаете новый файл, включающий расширение файла, например test.sql , vim автоматически выделяет синтаксис SQL для всего, что вы вводите - опять же, ничего нового здесь.

Однако, когда вы создаете новый файл без расширения файла, но содержащий шебанг, например, #!/usr/bin/env python , кажется, необходимо сохранить файл и открыть его снова, чтобы vim применил проверки и решил, что это скрипт на python.

У меня вопрос, есть ли команда vim, которая запускает эти проверки, позволяя обновить выделение в новых (без расширения) файлах, избегая необходимости повторного открытия файла.

Взглянув на документацию vim для загрузки синтаксиса, я подумал, что смогу найти что-то полезное в отношении моего запроса - к сожалению, я этого не сделал.

1 ответ1

3

Вот 3 различных способа сделать это:

  • :set ft=python . Недостатком этого подхода является то, что вы не можете добавить его к сочетанию клавиш, так как он будет работать только с одним типом файла (в данном примере python)
  • :w+:e Недостатком является то, что вы должны сохранить файл перед запуском команды, так как она перезагружает файл.
  • :filetype detect тип файла обнаружение Это больше, чтобы набрать, хотя.

Вы можете добавить второй или третий вариант в виде ярлыка с map <C-r> :filetype detect<CR> файла обнаруживает <CR> в свой .vimrc чтобы включить обновление файла с помощью ctrl+r

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .