Использование Vim вместо (или с) Xcode для разработки iOS

Xcode поставляется с множеством вещей, которые необходимы для создания iPhone и/или iPad. На самом деле многие из них я даже не знаю, потому что это так "за кадром".

С другой стороны, я недавно был ознакомлен с преимуществами использования Vim в качестве редактора. Есть ли какие-либо настройки, которые могли бы сделать использование Vim эффективным вариантом при разработке для платформ iOS? Или было бы так сложно объединить эти два вопроса, чтобы этот вопрос был спорным?

Другими словами, если у вас есть какие-либо советы, советы или предупреждения при использовании Vim и Xcode вместе, я все уши!

Ответ 1

Разработка для iOS или Mac с Vim может быть очень мощной и быстрой, особенно если вы используете TDD или хотите получить обратную связь.

Но для его работы требуется немного финализации. Несколько важных вещей, которые вам нужно знать:

  • Используйте инструмент командной строки xcodebuild для запуска вашей сборки и единиц из некоторого vimscript.
  • Используйте плагин clang_complete, чтобы дать вам полное завершение кода из vim.
  • Используйте ios.vim и cocoa.vim плагины для навигации.

Это мой предпочтительный метод работы. Фактически, я написал плагин ios.vim, чтобы сделать это проще для большего количества людей.

Ответ 2

Я уже там...

Я люблю vim и регулярно использую его в своей повседневной разработке на С++ на платформах * nix, но мне также нравятся все функции Xcode, которые, особенно с последними версиями Xcode >= 4.3 и clang, дают реальный плюс в термины автозаполнения и ссылки на символы.

Я думаю, что нашел оптимальное решение с отличным (хотя официально не поддерживаемым Apple) XVim плагин.

Надеясь, что будущие обновления Xcode не сломают его (он все еще отлично работает с предварительными просмотрами последних версий 4.5), это действительно позволяет вам двигаться пальцами, как вы это делали в Vim, работая с Xcode, что как я сказал, для меня является оптимальным решением.

Ответ 3

Vim и XCode будут совместно сосуществовать вместе, при условии, что вы не пытаетесь одновременно редактировать одни и те же файлы в Vim и редакторе XCode. Если вы это сделаете, каждый из них даст вам предупреждение о том, что файл изменен извне. Терминальная версия Vim немного легче жить в этом конкретном отношении: она будет предупреждать вас только о том, когда вы попытаетесь сохранить файл, спрашивая, уверены ли вы, в то время как MacVim и редактор XCode будут предупреждать вас каждый раз, когда вы возвращаетесь к файлу.

XCode позволяет вам выбирать внешнее приложение при открытии файлов по типу файла. В настройках XCode перейдите на вкладку Типы файлов, а затем файл- > текст- > исходный код. Предпочтительный редактор может быть настроен на внешнюю программу, такую ​​как MacVim; обратите внимание, что Emacs уже должен быть указан как выбор: при выборе Emacs XCode запускает Terminal.app с Emacs в терминале. У этого параметра предпочтительного редактора есть проблема, что вы получите новое окно с каждым открытым файлом, что может не совпадать с вашим рабочим процессом.

Функция Vim remote может оказаться полезной здесь, см. :help remote. При небольшой работе и вышеприведенном предпочтении предпочтительного редактора нужно иметь возможность отправлять файл для редактирования в любой экземпляр Vim, включая существующий Vim, работающий в xterm. Я, кажется, помню, что Emacs предоставляет нечто подобное.

Но ничто из этого не позволяет вам использовать параметр Vim без. Предпочтительный редактор: просто откройте и отредактируйте файлы проектов в Vim, как обычно.

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

Конечно, нельзя ожидать, что Vim заменит что-то вроде Interface Builder, но практически любой другой аспект iOS-разработчика может быть достигнут с помощью решения Vim-only.

Или просто используйте Vim для более быстрого редактирования кода и продолжите использовать XCode для остальных.

Ответ 4

Даже мысль MacVim с YouCompleteMe является моей основной средой для разработки на OSX, есть задачи, которые я предпочитаю делать в XCode, например, отладку и профилирование. Для этих сценариев я использую XVim, который добавляет возможности редактирования VIM в XCode.

В XCode 5.1 XVim сильно разбился. Но он прогрессировал, и теперь он отлично работает с XCode 6. Но вы только получаете подмножество VIM таким образом, например. вы не можете разделить редактор для одновременного просмотра двух файлов. Вы можете легко включить/отключить его с помощью Shift-Command-X.

(Извините, что опубликовать это как ответ, а не как комментарий, но система репутации stackoverflow не позволила мне)

Ответ 5

Есть определенные преимущества с использованием внешних редакторов (однако emacs в десять миллионов раз лучше, чем vim:}).

Придерживайтесь Xcode для большинства вещей, но когда вам нужна мощь emacs или, возможно, vim (основные макросы повторяющегося редактора - моя главная причина), просто отредактируйте файл, используя show in finder, и откройте его или просто переключитесь на ваш редактор перемещается в файл оттуда. XCode поймет, когда вы вернетесь назад, что файл изменился.

Для простого кода я придерживаюсь Xcode, это завершение кода основано на более полном знании кода, так что удар emacs или vim раздастся. Непрерывная проверка кода неоценима, и, как уже упоминалось, прямой доступ к документации является удивительным (нажмите кнопку, если вы еще не нашли его).

Ответ 6

Я не могу рекомендовать YouCompleteMe достаточно! Помимо его завершения кода он также показывает синтаксические ошибки "на лету" на затронутой строке без необходимости ручного запуска вашего компилятора (т.е. Очень похоже на функции редактора XCode). Описание создателя YCM довольно информативно:

YouCompleteMe - это быстрое, как вы, тип нечеткого поиска кода двигатель для Vim. Он имеет несколько механизмов завершения: идентификатор движок, который работает с каждым языком программирования, семантический, Clang-based движок, который обеспечивает наследование семантического кода для C/С++/ Objective-C/Objective-С++ (отныне называемый "C-семейные языки" )...

Чтобы запустить его:

  • Следуйте разделу "Быстрая установка Mac OS X"
  • Не забудьте добавить файл .ycm_extra_conf.py в корень вашей папки проекта

Edit:

Без плагина, такого как YouCompleteMe, VIM может выполнять только рудиментарное завершение слова (Ctrl-N), которое не знает ни о языке программирования, который вы используете, ни обо всех других файлах, принадлежащих вашему проекту. Вы также не получаете список членов объекта после ввода ".". или '- > '. Таким образом, вы пропустите большую помощь (и, следовательно, скорость), XCode дает вам при наборе текста. Также VIM не предупреждает вас, как XCode, когда вы делаете опечатки или другие ошибки в коде. YouCompleteMe добавляет именно те недостающие функции в VIM и делает развитие iOS в VIM радостью.

Вы можете использовать xcodebuild для создания и запуска вашего проекта, но лично я предпочитаю работать с VIM и XCode одновременно. Оба перезагружают документы автоматически после того, как они были изменены другим. Храните XCode для отладки, профилирования и развертывания.

Ответ 7

Мне нравится XVim для XCode. К сожалению, он прерывается для XCode 5.1 (у некоторых людей работала ветка развития, но я не мог).

Я закончил переход на AppCode после пробной версии, мне очень понравилось управление вкладками, рефакторинг и анализ кода. Код автоматически синхронизируется с XCode, поэтому я запускаю оба (XCode для настроек сборки, управляя каталогом активов. AppCode для всего остального).

В первый день я его загрузил, я установил IdeaVim, поэтому я все еще мог использовать некоторые сочетания клавиш Vim.

Хотя вы не сможете получить полную функциональность Vi/Vim с помощью плагина. Я считаю, что использование смешанного использования с собственными командами IDE достаточно для компенсации.

Ответ 8

По моему мнению, Xcode - лучшее решение. У него так много функций, что вы не можете найти/добавить в Vim. Некоторые из них:

  • Интерфейс Builder (для создания хороших интерфейсов lookin за меньшее время)
  • ARC (автоматическое управление счетчиками ссылок)
  • Автоматизированный процесс управления подписыванием кода и представлением магазина приложений

Список очень длинный, и Apple всегда поощряет вас использовать Xcode, а не другие IDE.