Использование Vim вместо (или с) Xcode для разработки iOS
Xcode поставляется с большим количеством вещей, которые необходимы для создания на iPhone и/или iPad. На самом деле многое из этого я даже не осознаю, потому что это так "за кулисами".
с другой стороны, я недавно был подвержен преимуществам использования Vim в качестве редактора. Есть ли какие-либо настройки, которые сделают использование Vim эффективным вариантом при разработке для платформ iOS? Или было бы так сложно объединить их, чтобы сделать этот вопрос спорный вопрос?
другими словами, если у вас есть какие-либо советы, советы или предупреждения при использовании Vim и Xcode вместе, я все уши!
8 ответов:
разработка для iOS или Mac с Vim может быть очень мощной и быстрой, особенно если вы используете TDD или хотите быстрой обратной связи.
но это занимает немного finagling, чтобы заставить его работать. Несколько важных вещей, которые вам нужно знать:
- использовать
xcodebuildинструмент командной строки для запуска сборки и блоков из некоторых vimscript.- использовать
clang_completeплагин, чтобы дать вам полное завершение кода в Vim.- использовать
ios.vimиcocoa.vimплагины для навигации.Это мой предпочтительный метод работы. На самом деле, я написал
ios.vimплагин, чтобы сделать это проще для большего числа людей.
Я там уже был...
Я люблю vim и регулярно использую его в своей повседневной разработке C++ на платформах *nix, но мне также нравятся все функции Xcode, которые, особенно с последним Xcode >= 4.3 и clang backend, дают реальный плюс с точки зрения автоматического завершения и ссылки на символы.
Я думаю, что нашел оптимальное решение с большим (хотя официально не поддерживается Apple)плагин XVim.
надеюсь, что в будущем Xcode обновления не сломают его (он по-прежнему отлично работает с предпросмотром последних разработчиков 4.5), это действительно позволяет вам держать пальцы в движении, как вы научились делать в Vim во время работы с Xcode, что, как я уже сказал, является для меня оптимальным решением.
Vim и XCode будут сосуществовать довольно хорошо вместе при условии, что вы не пытаетесь редактировать одни и те же файлы в Vim и Редакторе XCode в то же время. Если вы это сделаете, каждый из них даст вам предупреждение о том, что файл изменяется извне. Терминальная версия Vim немного проще в этом отношении: она будет предупреждать вас только при попытке сохранить файл, спрашивая вы уверены, в то время как MacVim и редактор XCode предупредят вас каждый время вернуться к файлу.
XCode позволяет выбрать внешнее приложение при открытии файлов, по типу файла. В настройках XCode перейдите к Типы Файлов tab, а затем file - >text - >sourcecode. Предпочтительный Редактор можно установить на внешнюю программу, такую как MacVim; обратите внимание, что Emacs должен быть уже указан в качестве выбора: когда Emacs выбран XCode запускает терминал.приложение с Emacs в терминале. Этот Предпочтительный Редактор настройка имеет проблему, что вы получите новое окно с каждым открытым файлом, который может не соответствовать вашему рабочему процессу.
Вим это
remoteфункция может оказаться полезной здесь, см.:help remote. С небольшим трудом, и выше Предпочтительный Редактор предпочтение, нужно иметь возможность отправить файл для редактирования в любой экземпляр Vim, включая существующий Vim, работающий вxterm. Я, кажется, помню, что Emacs предоставляет что-то подобный.но ничто из этого не мешает вам использовать Vim без задание Предпочтительный Редактор: просто откройте и отредактируйте файлы проекта в Vim, как обычно.
ваш рабочий процесс может использовать Vim для редактирования кода и переключиться на XCode для построения проекта, но Vim также может запускать те же инструменты сборки, которые использует XCode, и с немного большей работой вы даже сможете перейти к строкам с ошибками. XCode использует gdb для отладки, который также может быть использован довольно хорошо с Vim, через плагин.
конечно, Vim не может заменить что-то вроде Interface Builder, но почти каждый другой аспект iOS dev может быть достигнут с помощью решения только для Vim.
или просто использовать Vim в редактировать код быстрее, и продолжайте использовать XCode для остальных.
даже мысли MacVim с YouCompleteMe Это моя основная среда для разработки на OSX, есть задачи, которые я предпочитаю делать в XCode, такие как отладка и профилирование. Для этих сценариев я использую XVim который добавляет возможности редактирования VIM в XCode.
На XCode 5.1 XVim разбился довольно много. Но он прогрессировал, и теперь он довольно хорошо работает с XCode 6 до сих пор. Но вы получаете только подмножество VIM таким образом, например, вы не можете разделить редактор для просмотра два файла одновременно. Вы можете включить/отключить его довольно легко с помощью Shift-Command-X.
(Извините, что публикую это как ответ, а не как комментарий, но репутационная система stackoverflow не сделала это возможным для меня)
безусловно, есть некоторые преимущества использования внешних редакторов (однако emacs в десять миллионов раз лучше, чем vim:}).
придерживайтесь Xcode для большинства вещей, но когда вам нужна сила emacs или, возможно, vim ( массовые повторяющиеся макросы редактора-моя основная причина), просто отредактируйте файл, используя show in finder и open with, или просто переключившись на свой редактор, перейдя к файлу оттуда. XCode поймет, когда вы переключитесь обратно, что файл изменился.
для простой код, я бы придерживался Xcode, его завершение кода основано на большем знании кода, поэтому руки Emacs или vim beat вниз. Непрерывная проверка кода бесценна, и, как уже упоминалось, прямой доступ к документации является удивительным ( опция нажмите, если вы еще не нашли его).
Я не могу рекомендовать YouCompleteMe достаточно! Помимо его завершения кода он также показывает вам синтаксические ошибки на лету на затронутой строке без необходимости вручную запускать ваш компилятор (т. е. очень похож на функции редактора XCode). Описание создателя YCM довольно информативно:
YouCompleteMe-это быстрое, как вы печатаете, нечеткое завершение кода поиска двигатель для Vim. Он имеет несколько механизмов завершения: на основе идентификатора движок, который работает с каждым языком программирования, семантический, Механизм на основе Clang, который обеспечивает собственное семантическое завершение кода для C / C++ / Objective-C / Objective-C++ (отныне именуемый " the С-семейные языки")...
чтобы запустить его:
- следуйте разделу 'Mac OS X супер-быстрая установка'
- не забудьте добавить .ycm_extra_conf.py файл в корень вашего проекта папка
Edit:
без такого плагина, как YouCompleteMe, VIM может выполнять только рудиментарное завершение слов (Ctrl-N), которое не знает ни языка программирования, который вы используете, ни всех других файлов, принадлежащих вашему проекту. Вы также не получаете список членов объекта после ввода '.' или.'>-' Таким образом, вы пропустите много помощи (и, следовательно, скорость) XCode дает вам во время набора текста. Также VIM не предупреждает вас, как XCode, когда вы делаете опечатки или другие ошибки в коде. YouCompleteMe добавляет именно те отсутствующие функции в VIM и делает разработку iOS в VIM радостью.
вы могли бы использовать
xcodebuildчтобы построить и запустить свой проект, но лично я предпочитаю работать с VIM и XCode одновременно. Оба документа перезагружаются автоматически после того, как они были изменены другим. Сохраните XCode для отладки, профилирования и развертывания.
Мне нравится XVim для XCode. К сожалению, он ломается для XCode 5.1 (некоторые люди получили ветку разработки, но я не мог).
в итоге я переключился на AppCode после пробной версии мне очень понравилось управление вкладками, рефакторинг и анализ кода. Код автоматически синхронизируется с XCode, поэтому я запускаю оба (XCode для настроек сборки, управление каталогом активов. AppCode для всего остального).
первый день я загрузил его, я установил IdeaVim поэтому я все еще могу использовать некоторые сочетания клавиш Vim.
хотя вы не получите полную функциональность Vi/Vim с плагином. Я считаю, что использование mix с собственными командами IDE достаточно для компенсации.
по моему мнению Xcode является лучшим решением. Он имеет так много функций, которые вы не можете найти/добавить в Vim. Некоторые из них:
- Interface Builder (чтобы создать красивый интерфейс за меньшее время)
- ARC (автоматический подсчет ссылок-управление памятью)
- автоматизированный процесс управления подписью кода и отправкой в app store
список очень длинный, и Apple всегда призывает вас использовать Xcode, а не любой другой ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ.
Comments