Подтвердить что ты не робот

Почему Emacs/Vim/Textmate? Разве Xcode недостаточно хорош?

Привет, я в основном программирую С++, Objective-C. И я нашел Xcode плюс автоматическое завершение/макро-плагин (словарь завершения) вполне адекватным.

Однако все люди, похоже, хвалили своих чистых текстовых редакторов. Я попробовал Textmate немного; понравилась его простота, но не понравилась обработка файлов/фреймов.

Я что-то упустил? Или, у Vim или Emacs есть автозаполнение так же хорошо, как Xcode?

4b9b3361

Ответ 1

Поднимите сына стула, позвольте мне поговорить об этом.

До дней Xcode существовали VIM и Emacs. Я знаю, что это трудно представить, но это правда.

Многие люди привыкли к VIM/Emacs, и поэтому продолжают использовать его.

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

VIM обладает невероятным движком регулярных выражений (также Emacs) и очень удобен, потому что (VI) поставляется с почти каждой ОС Unix и работает фантастически, если у вас нет клавиш со стрелками (да, да, настоящая старая школа). Люди очень хорошо используют клавиши для перемещения документов, без необходимости использовать мышь.

То же самое относится и к Emacs, но для меня я нахожу движение курсора намного проще на VIM.

Война в текстовом редакторе подпитывается столь же религиозным фанатизмом, как война против Мак-ПК, и ответ - это лучшее, что работает для вас. Если вам нравится Xcode, отлично, продолжайте использовать его, однако удачи, если вы когда-либо вынуждены работать на ПК или Linux-машине. Лично я использую Emacs для кодирования, VIM, чтобы манипулировать текстом и Firefox, чтобы посмотреть на lolcats.

Ответ 2

Я действительно не понимаю, почему emacs поддерживает, когда люди говорят о текстовых редакторах. По моему опыту это больше похоже на eclipse (или на одну из этих других платформ /IDE ), чем на vi, потому что это среда, которая хорошо подходит для редактирования текста.

В качестве среды IDE emacs предусмотрен контроль версий, живая компиляция, проверка орфографии, автоматическое завершение, отладка, просмотр кода и многое другое для широкого спектра SDK. Для остальных ваших компьютеров это клиент электронной почты/новостей/web/irc/twitter/xmmp, календарь, органайзер, калькулятор, эмулятор терминала, удаленное редактирование, списки рассылки, игры и т.д. И т.д. И т.д.

После Dijkstra: "Emacs больше не нуждается в редактировании текста, чем астрономия о телескопах"

Ответ 3

Что вам не хватает, так это то, что Emacs и Vim на самом деле являются IDE.

Ответ 4

vi повсеместно распространен в UNIX-системах, а Emacs почти так. AFAIK, Xcode находится на одной платформе.

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

Ответ 5

Все зависит от ваших предпочтений.

Некоторым людям нравится работать с легкими текстовыми редакторами, такими как (g) vim, emacs, pico и т.д. Другие любят работать с IDE, такими как MS Visual Studio, Eclipse, Xcode.

Пока ваша среда совместима с технологией редактирования текста, все зависит от вас.

Кстати, мне нравится работать с Eclipse и vim, потому что это то, что я использовал для обучения программированию;)

Ответ 6

Основная причина, по которой вы, кажется, думаете, что такие люди, как Emacs/Vim, для завершения кода. Такие люди, как Emacs/Vim, из-за того, что они созданы для редактирования текста. У вас есть контроль и параметры, доступные вам, что другие редакторы просто не имеют. Как только вы получите ДЕЙСТВИТЕЛЬНО хорошее использование одной из этих программ, вы хотите, чтобы эти привязки/команды клавиш были доступны повсюду. Макросы, регулярные выражения, перемещаясь по поиску/слову/абзацу/функции, взаимодействуя с контролем версий, сложными функциями отмены/повтора и копирования/вставки и расширениями, являются лишь НЕПОСРЕДСТВЕННЫМ из того, что действительно делают эти редакторы.

Кодовое завершение - это лишь одно из МНОГИХ вещей, которые облегчают программирование написания. Emacs/Vim может обрабатывать ВСЕ из них (изначально или с помощью exntensions).

Ответ 7

Нет, не совсем. Это вопрос предпочтения на самом деле. Мне нравилось работать в Visual Studio 6, но в наши дни более новые версии слишком раздуты. Поэтому, если я могу что-то сделать вне VS, я обычно делаю это, не открывая все поле IDE.

В окнах мне нравится блокнот2 и gvim. Я настроил vim до такой степени, что он идеально подходит для моих потребностей, поэтому мне не нужно думать о том, что и где.

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

Ответ 8

Я лично люблю emacs. Я использовал vim и несколько IDE. У Vim и emacs есть отличные сообщества, где люди хотят кодировать функции практически для любого языка. Я не знаю никаких IDE, которые, скажем, поддерживают Haskell. Все зависит от того, что важно для вас. Оба языка имеют языки расширения, хотя IMO, emacs lisp является лучшим из двух. Способность игнорировать мышь - главное, что мне нравится. Так много IDE также поддерживают режимы или расширения emacs и vim compatibilty. У них обоих большие инвестиции, но оба они того стоят. Рано или поздно вы выберете то, что вам подходит, vim/emacs/IDE, а затем продолжайте улучшать свои навыки с ним.

Ответ 9

Для меня наиболее важны две наиболее важные функции:

  • Связывание ключей Emacs, так как мои пальцы совместимы.

  • Open-source, для свободы, которую он предоставляет. Связь с одной платформой - это анафема.

В наши дни я в основном использую Eclipse для программирования (устанавливается в Emacs keybindings) и FSF Emacs для чтения почты и некоторых случайных LaTeX.

Ответ 10

Когда вы используете Emacs, вы можете установить Cedet или пакет Autocomplete, чтобы использовать завершение имени для некоторых языков (С++ довольно хорош, в то время как Obj-C по-прежнему не поддерживается), в дополнение к расширенной функциональности редактора

Ответ 11

emacs является мощным. Я использую emacs с vimpluse.el, так что я могу использовать привязки клавиш vim со всеми функциями emacs.

Ответ 12

Я использую Vim в основном для модели ввода. Как только вы овладеете моделью ввода, возврат к редактору, в котором вы вынуждены использовать мышь, кажется неуклюжим и в конечном итоге (по крайней мере для меня) раздражающим. Гораздо эффективнее вводить "ci" для изменения всего текста между двумя одинарными кавычками, затем отнимая руки от домашней строки, находить и выбирать текст с помощью мыши и, наконец, ударять "удалить".

Я только кратко использовал Emacs, и, хотя я предпочитаю Vim, я ревную к некоторым его функциям. Но я в конечном итоге пошел с Vim, потому что я нашел модель ввода аккордов, которую Emacs использует, чтобы наложить ненужные нагрузки на мои пальцы.

Ответ 13

У меня есть Xcode и TextMate, и я не использую их, хотя знаю, что они могут быть очень мощными. Вместо этого я использую Vim (или MacVim, если хотите). Зачем?

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

Независимо от того, какой редактор вы используете, лучшим редактором является тот, который вы мастер (почти) отлично.

Ответ 14

TextMate просто чувствует себя легче для меня. Сверху моей головы:

  • Он отлично поддерживает переходы между файлами и методами в файлах. Подумайте о Quicksilver для файлов/методов. Открыв файл для редактирования, нажмите command-shift-t, чтобы открыть панель с указанием всех методов в файле. Начните вводить текст, и список фильтрует себя. Выберите нужный метод и нажмите "вернуться", чтобы перейти к нему. Xcode имеет что-то вроде этого, но совпадение желов более буквально.

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

  • Поддержка плагинов для Subversion и Git. Возможно, другие VCS тоже.

  • Завершения (например, Xcode) и история. TextMate позволяет вам полностью заполнить любой текст, который существует в файле. Поэтому, как только вы вводите одноименное имя переменной или метод один раз, вы можете использовать вкладку, чтобы автоматически завершить ее в любом месте этого же файла.

  • Умная панель с историей, хорошая встроенная в diff, поддержка темы, хорошая поддержка клавиатуры, поиск в файлах и проектах (с RegEx) и, возможно, больше, что я забываю.

Во всяком случае, этого достаточно от меня.

Ответ 15

Я долгое время vim-пользователь и считаю, что мне действительно нравится редактирование Komodo с включенной эмуляцией Vim. Таким образом, я получаю все удобства привязок клавиш vim (к которым я настолько привык, что недавний документ MS Word, который я недавно выпустил, имел не менее трех ": w" в нем) плюс хорошо реализованное завершение кода для С++, Python, javascript и т.д.

Я не использую XCode, потому что я не очень сильно разрабатываю приложения для OS X, поэтому преимущество интеграции с инфраструктурой OS X недостаточно велико, чтобы перевесить стоимость отсутствия привязок клавиш vim и "сделать это наш путь или совсем не" подход, который Apple придает развитию.

Ответ 16

Xcode является скорее IDE, тогда как emacs и vi предназначены для чистого текста (хотя у них есть массивные расширения для них). Это предпочтительнее, если вы находитесь в старой системе или над SSH. Кроме того, они почти на каждом компьютере на базе UNIX, тогда как XCode является запатентованным программным обеспечением Apple.

Ответ 17

Я не использую vi для кодирования; однако, когда это возможно, я использую эмуляцию vi в своих редакторах. Когда я использую Java-кодирование в IntelliJ, я использую плагин IdeaVIM, который дает мне поддержку vi в редакторе IntelliJ. Это означает, что я почти никогда не должен снимать пальцы с домашней строки. Я перемещаюсь с помощью клавиатуры (h, j, k, l), вырезать/вставлять с помощью yy, dd и т.д. И, конечно, когда мне действительно нужна мощь GUI-редактора с полным набором функций, я не могу использовать эти особенности.

Это сводит меня с ума, что XCode не имеет эмуляции vi в своем редакторе. Похоже на функциональность, которую должна иметь любая достойная IDE.

Ответ 18

Лично я люблю TextMate, потому что это действительно очень легкое решение. Конечно, я не использовал Vim или Emacs в глубину (мне нравятся мои графические интерфейсы)... хотя я полностью наслаждаюсь навигацией курсора на основе управления (Control-A - начало строки, Control-E - конец строки, Control- F и Control-B - вперед и назад и т.д.). Поэтому между Xcode и TextMate я использую Xcode для большей части моей серьезной разработки, но если мне просто нужно быстро отредактировать исходный файл, я могу встать и кодировать до того, как Xcode даже закончит запуск (это помогает TextMate помнить, какие файлы были ранее открыты и восстановить их). Поэтому для небольшого редактирования текста TextMate - мой выбор.

Кроме того, поддержка плагина TextMate поразительна; он обеспечивает полную поддержку (синтаксическая раскраска, создание и запуск и т.д.) для множества разных вещей (shell-скрипты, CSS, SQL, LaTeX и многое другое), которые Xcode не предоставляет. Когда мне нужно быстро развернуть программу на Java или настроить веб-страницу, это намного проще, чем использовать Vim, а затем построить из терминала.

Моя единственная жалоба с TextMate заключается в том, что консоль доступна только для чтения, поэтому я не могу построить что-либо интерактивное. Это и тот факт, что он, похоже, не поддерживает ключевые слова C99 (для циклов и булевых элементов) в файле с простым C.

Ответ 19

Возможно, вы посмотрите на мое эссе по теме Почему Emacs?. Хотя это более или менее Emacs-centric, некоторые из сделанных в нем очков будут применяться также к vim и TextMate.

Ответ 20

Я пробовал vim давным-давно и по тем или иным причинам "я этого не понял". Затем, пробовав других редакторов за эти годы, я дошел до того уровня, когда ни один редактор не делал то, что я хотел. Выразив мое разочарование другу, он рекомендовал мне попробовать vim.... и я так рад, что я посмотрел еще раз, потому что это был ответ на вопрос, который я не знал, как спросить! Я использовал Vim/MacVim с тех пор...

здесь моя конфигурация: https://github.com/RandyMcMillan/QuickVim

Я также использую Xcode, потому что хорошо иметь завершение кода. XVim хорош для людей, которые хотят модального /vim чувствовать в редакторе Xcode: https://github.com/JugglerShu/XVim

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

У меня есть список лицензий для таких редакторов, как TextMate и т.д., но вполне вероятно, что я их никогда не смогу использовать, так как я могу бесплатно пользоваться vim и настраивать его на свои точные спецификации.

Ответ 21

Тяжелый пользователь Vim здесь. Обычно я нахожу, что возможности манипулирования текстами Vi/Vim намного превосходят традиционные редакторы, у которых нет таких вещей, как:

  • визуальный режим: например. префикс 5 строк с комментарием //
  • макросы: например. объединить от 3-го до 5-го слова в строке с кавычками, повторить для 100 строк
  • несколько регистров: думаю, 36 регистров для копирования и вставки
  • delete {motion}: например. удалить из курсора до следующего вхождения 'initWithFrame'

Это всего лишь несколько примеров того, что Vim имеет текстовое редактирование XCode, избивающее руки вниз

Для Objective-C. Я стараюсь установить плагин Vim на IDE, чтобы получить лучшее из обоих миров - поддержка встроенных компонентов/пользовательских интерфейсов.

Между прочим. Связывание клавиш Emac (например, CTRL-A для перехода к началу строки) поддерживается во многих текстовых полях (Coacoa) на Mac. Включая ту, которую вы используете для ввода ответов в stackoverflow: D

XVim работает с XCode. IdeaVim для AppCode