Подсветка CSS в Vim Breaks, если я открываю вторую вкладку - PullRequest
1 голос
/ 04 января 2012

Я переписываю свое резюме с нуля (думаю, это хороший способ начать новый год), и я делаю это как веб-страницу.Естественно, я хочу, чтобы все HTML, CSS и Javascript были в одном файле, поэтому он будет переносимым.

При работе с ним в Vim у меня есть разделы документа CSS, HTML и Javascript, которые открываются в отдельныхвкладки.Но как только я открываю вторую вкладку, подсветка синтаксиса для CSS отключается.HTML и Javascript продолжают выделяться правильно.

Я ни в коем случае не эксперт Vim, поэтому прошу прощения, если это слишком простой вопрос, но я не смог найти документацию (или существующие сообщенияв Stackoverflow), которые решают эту проблему.

Заранее благодарим за понимание.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

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

Если это работает, вы можете настроить элементы управления подсветкой синтаксиса, чтобы не тратить время на прокрутку; подробности см. :help syn-sync. Есть несколько вариантов:

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

    :syntax sync fromstart
    
  • Увеличить количество анализируемых строк. Это уменьшает вероятность плохого распознавания синтаксиса без необходимости повторной обработки всего файла с самого начала каждый раз.

    :syntax sync minlines=200
    

    Выберите число, которое достаточно велико, чтобы работать почти все время без значительных потерь производительности. Это, вероятно, лучший подход, даже 500 строк должно быть в порядке на большинстве компьютеров последнего десятилетия.

  • Если вы редактируете код в стиле C, vim может легко повторно синхронизироваться с помощью комментариев в стиле C. (Обратите внимание, не // newfangled, а /* the original style */.) Возможно, не лучший выбор для HTML, CSS, JavaScript, но, возможно, ваш код делает его более выполнимым:

    :syntax sync ccomment
    
  • В четвертом методе используются «шаблоны синхронизации», аналогичные комментариям в стиле C, но более применимые к другим средам. У него достаточно дополнительных сложностей, и я не думаю, что описать его здесь стоит усилий - :help syn-sync-fourth содержит все детали для любопытных.

Любой из этих параметров конфигурации может быть добавлен в ваш файл ~/.vimrc:

syntax sync fromstart

Вы можете изменить поведение в зависимости от того, какие файлы вы редактируете. Просто добавьте ведущий : при добавлении строк в файл. Используйте autocmd, чтобы определить его для таких типов:

autocmd  BufNewFile,BufRead *.html syntax sync fromstart
0 голосов
/ 04 января 2012

Это может стать уместным, чтобы дать ответ

какую версию vim вы используете? Я предполагаю, что вы используете Vim 7.3 (если нет, то вам следует - большинство linux)у искажений это есть, и есть выход для Windows и MacVim для osx).Возможно, ваша установка старая или сломана.

Какие-либо плагины? Простая проверка - временно удалить все ваши плагины, перезапустить vim и посмотреть, происходит ли это по-прежнему.

Что-нибудь особенное в вашем .vimrc? Если вы настроили это самостоятельно, то, вероятно, не слишком много сюрпризов, но если вы позаимствовали у кого-то другого, вы можетесделать то же самое, что вы сделали с папкой плагинов (пустой или минимальный файл).

Надеюсь, это поможет - удачи!

...