Мне бы хотелось иметь отличную подсветку синтаксиса для obj-c, которая соответствовала бы той, что есть в моем xcode, или превосходила ее.
Я установилбаза16черезядр, и я также установилкакао.vimдля лучшей подсветки синтаксиса... но установка последнего ничего особо не изменила, и вот что у меня получилось:
сравните это сзенберн для xcodeЦветовое выделение в том же файле:
кроме разницы в цветах (которая является вопросом личных предпочтений инето чем я спрашиваю).. я заметил, что zenburn для xcode распознает гораздо больше вещей, чем vim.. как мне решить эту проблему в vim? Я действительно хочу в дальнейшем вести всю свою разработку в vim.
ps я не уверен, что cocoa.vim выше делает то же самое, что и то, чтоэтотrepo делает для javascript например.. вы можете получить визуальное представление этой разницыздесь
решение1
Вероятно, вам придется внести довольно большие изменения в эти два файла:
https://github.com/msanders/cocoa.vim/blob/master/after/syntax/objc_enhanced.vim
https://github.com/msanders/cocoa.vim/blob/master/after/syntax/cocoa_keywords.vim
чтобы соответствовать подсветке синтаксиса XCode. Это нетривиальная задача, которую вы не можете ожидать, что кто-то здесь сделает за вас. Тот факт, что a) этим файлам 4 года и b) их автор полностью прекратил поддержку своего Vim, не делает ее проще.
Я не знаю ни одного всеобъемлющего онлайн-руководства по написанию собственного синтаксического скрипта, поэтому вам не избежать чтения :help syntax
сверху донизу и обратно, а также изучения других синтаксических скриптов в $VIMRUNTIME/syntax/
.
Кстати, все группы подсветки, определенные в cocoa.vim, связаны с этими семью стандартными группами подсветки (я добавил их шестнадцатеричные значения, взятые из вашей цветовой схемы):
Keyword #b48ead
Special #96b5b4
Type #d08770
Constant #d08770
Error no value
String #a3be8c
Identifier #bf616a
Вы заметите, что в base16 Type
и Constant
у вас те же цвета, что может быть не очень хорошо. Из вашего снимка экрана XCode не видно, что он использует больше цветов, чем base16, поэтому добавления пары синтаксических групп может быть достаточно.
решение2
Я установил base16 через yadr, а также установил cocoa.vim, чтобы улучшить подсветку синтаксиса, но установка последнего ничего особо не изменила, и вот что у меня получилось:
Это связано с тем, что cocoa.vim не поддерживался в течение многих лет, а файл синтаксиса не соответствует последней версии Vim.
Я только что исправил это в своей вилке: https://github.com/kentaroi/cocoa.vim
Я не собираюсь рекламировать свой форк. Но, учитывая текущий официальный cocoa.vim (https://github.com/msanders/cocoa.vim) ситуации, я выкладываю ссылку на свой форк для вашего удобства.
Редактировать:
Поскольку я больше не буду поддерживать указанный выше репозиторий, я рекомендую следующий плагин синтаксиса vim: https://github.com/SolaWing/vim-objc-syntax