Когда я открываю некоторые файлы сценария bash с помощью vim, он иногда идентифицирует их как файлы conf, это нормально, я могу просто исправить это, установив тип файла на sh с :setf sh.
Это здорово, за исключением того, что я заметил, что это не исправляет ситуацию полностью:

Обратите внимание, что shopt правильно выделено слева, но не справа, где я вручную установил тип файла sh.
Это означает, что когда vim идентифицирует файл как bash или sh, он устанавливает тип файла на sh, но затем выполняет некоторые дополнительные действия, которые я не делаю, когда устанавливаю тип файла вручную.
Кто-нибудь знает, что это может быть, и как я могу это исправить?
let g:is_bash=1в.vimrc) бесполезно. Почему? Потому что это заставляет буферы сценариев оболочки, отличные от Bash (например, Bourne, Korn), использовать подсветку синтаксиса, специфичную для Bash. Рассмотрим Тима Фриске отличное решение вместо этого. 17.08.2017filetype=sh. На самом деле, я только что воспроизвел то, что:help ft-bash-syntaxрекомендует добавить к вашему.vimrc, чтобы сделать его глобальным по умолчанию. Этот синтаксис не будет применяться ко всем файлам оболочки. Более конкретный шебанг, такой как#!/bin/ksh, по-прежнему будет переопределять этот выбор по умолчанию, поэтому я не могу воспроизвести ваше беспокойство. 20.08.2017