2

на моем сервере Ubuntu у vim нет подсветки синтаксиса при открытии файлов (конфигурации, scipts ...).

я пробовал с

:syntax on
:syntax enable

и он в VIM, что он включен, но он не работает

кто-нибудь знает как это исправить?

Спасибо!

4 ответа4

2

vim определяет тип файла по расширению.
Если вы хотите выделить синтаксис для файла без расширений, сделайте это после открытия файла.

:set ft=sh

при условии, что файл является сценарием bash. ft обозначает тип файла. Точно так же вы можете получить подсветку синтаксиса для других файлов, установив соответственно тип файла xml, html, php, python. Если вам нужно больше информации об этом,

:help ft

Надеюсь это поможет.

редактировать: для сохранения типов файлов.
Это только временное решение.

if &filetype == ""
    set viewoptions=options
    autocmd BufWinLeave * mkview
    autocmd BufWinEnter * loadview
endif

Добавьте это в ваш файл vimrc. Этот код хранит тип файла и другие локальные параметры, установленные для файла при выходе из vim. Вам нужно установить тип файла только один раз.
Сохраненные параметры теряются при переименовании файла. Вы должны будете установить тип файла еще раз, чтобы сохранить его.
Подробнее об этом читайте в руководстве vim для команд.

:help mkview
:help loadview
:help viewoptions
1

Добавление в качестве комментария к вашему комментарию;

как узнать, какой файл синтаксиса использовать? я пробовал "vim file.php" и "vim file.html", и он подчеркивает, используя правильный файл синтаксиса. но что если я хочу выделить файл сценария и просто набрать "vim file". тогда ничего не выделяется при наборе команд скрипта. Как я могу выделить сценарии Bash (для циклов, если заявления и т. д.)? - Эйси 6 часов назад

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

1

У вас есть хотя бы пустой .vimrc в HOME?

AFAIK, если этот файл отсутствует, vim запустится в режиме, совместимом с vi. Это может быть причиной отсутствия подсветки синтаксиса.

0

Поскольку это конфигурация сервера, проблема, вероятно, в том, что у вас не установлен пакет vim-common . Попробуйте и посмотрите, работает ли это.

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