VIM теряет подсветку синтаксиса при использовании команды split - PullRequest
3 голосов
/ 28 сентября 2011

Итак, я создал свой собственный файл подсветки синтаксиса, и он работает хорошо, если открыт только один файл.Однако, если я сделаю :split otherFile, другой открытый буфер не будет иметь подсветку синтаксиса.Я пробовал разные вещи, например :syntax on и т. Д. В чем может быть проблема?

Я использую Ubuntu 11.04, 64-разрядная версия.

Версия VIM: VIM - Vi IMproved 7.3 (2010 Aug 15, скомпилировано 24 марта 2011 07:07:34)

Я создал простой файл подсветки синтаксиса и поместил его в ~ / .vim / plugin / syntax.vim

Последнийстрока файла подсветки синтаксиса обозначена как b: current_syntax = "sth".Я не проводил никакой разводки, например, указывал расположение файла в .vimrc, синтаксис работает автоматически (для одного открытого файла).

Ответы [ 3 ]

1 голос
/ 08 сентября 2013

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

Я все еще не уверен на 100% как это произошло, но для будущих посетителей Google, я напишу, что решило проблему для меня: я переехал set syntax = on намного раньше в моем .vimrc.После нескольких лет аккреции линия с set syntax = on опустилась, пока не оказалась ниже ряда других вещей.Перемещение его обратно (почти) в начало файла исправило некоторые вещи для меня.Вот как выглядит начало моего .vimrc сейчас:

" First two uncommented lines only useful if you use Tim Pope's vim-pathogen.  
" https://github.com/tpope/vim-pathogen
execute pathogen#infect()
execute pathogen#helptags()

" Most general settings first
set nocompatible            " Vim rather than Vi; implied by this file
syntax on                   " Syntax highlighting on
filetype plugin indent on   " Filetype detection

" ... etc.
0 голосов
/ 31 марта 2016

Воскрешаю это, поскольку я только что наблюдал то же самое поведение. Решением, которое я нашел, было добавить параметр filetype on в мой файл .vimrc. я добавил его сразу после syntax on. syntax on случилось уже наверху моего файла .vimrc. Итак, вот первые несколько строк моего .vimrc:

1 " Activates Syntax Highlighting 2 syntax on 3 4 " Filetype on 5 filetype on

0 голосов
/ 02 ноября 2012

Синтаксические файлы принадлежат ~/.vim/syntax/sth.vim, а не ~/.vim/plugin/syntax.vim. Последний поставляется только один раз при запуске, поэтому, вероятно, он работает только для первого загруженного файла.

Чтобы ваш синтаксис стал активным, вам нужно :setf sth, или вставить соответствующую моделину в свои файлы, или написать определение типа файла для вашего синтаксиса, чтобы автоматизировать это.

...