Использование Emacs как IDE

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

166
задан Paulo Tomé 21 May 2013 в 15:38
поделиться

12 ответов

Необходимо будет быть конкретными относительно того, что Вы подразумеваете под "остальными". За исключением инспектора объектов (что я "m знающий), emacs делает все вышеупомянутое довольно легко:

  • редактор (очевидный)
  • , компилятор - просто выполняет M-x compile и вводит Вашу команду компиляции. Оттуда на, Вы можете всего M-x compile и использовать значение по умолчанию. Emacs получит ошибки компилятора C/C++ (работы лучше всего с GCC) и поможет Вам перейти к строкам с предупреждениями или ошибками.
  • Отладка - точно так же, когда Вы хотите отладить, тип M-x gdb и это создаст буфер gdb со специальной привязкой
  • , Поиск Документации - emacs имеет превосходную привязку CScope для навигации кода. Для другой документации: Emacs также имеет читателя страницы справочника, и для всего остального, существует сеть и книги.
  • управление версиями - существует большая привязка Emacs для различных бэкендов VCS (CVS, SCCS, RCS, SVN, МЕРЗАВЕЦ, все приходят на ум)

Редактирование: Я понимаю, что мой ответ о поиске документации действительно принадлежал навигации кода. Вот некоторая главная информация:

поиск Google несомненно покажет дальнейшие примеры.

, Поскольку вторая ссылка показывает, искание функций (и безотносительно) в другой документации может быть сделано, даже если не поддерживаемый из поля.

75
ответ дан rahmu 23 November 2019 в 21:05
поделиться

На поиске документации: это зависит от Вашего языка (языков) программирования.

библиотеки C и системные вызовы обычно документируются в страницы справочника. Для этого можно использовать M-x man. Некоторые вещи могут быть зарегистрированы лучше на информационных страницах; используйте M-x info.

Для самого elisp, используйте C-h f. Для Python используйте >>> help(<function, class, module>) в интерпретаторе.

я нахожу, что большинство других языков предлагает документацию в форме HTML. Для этого попробуйте встроенный браузер (я использую w3m). Установите Ваш BROWSER переменная среды к сценарию обертки приблизительно emacsclient -e "(w3m-goto-url-new-session \"$@\")" (на *, отклоняют), в случае, если что-то могло бы открыть браузер, и Вы хотите открытый внутри emacs.

2
ответ дан Jonas Kölker 23 November 2019 в 21:05
поделиться

компиляция, следующая ошибка и предыдущая ошибка являются всеми довольно важными командами для разработки C++ в Emacs (работает отлично на выводе grep также). Завершающие теги, таблица тегов посещения и находить-тег важны также. completion.el является одним из больших незамеченных взломов 20-го века и может ускорить Ваше взламывание C++ порядком величины. О, и давайте не забывать ediff.

я должен все же изучить, как использовать управление версиями, не посещая оболочку, но теперь, когда я выполняю фиксации настолько более часто (с мерзавцем), я буду, вероятно, иметь к.

3
ответ дан jfm3 23 November 2019 в 21:05
поделиться

Я соглашаюсь, что необходимо узнать о компиляции M-x (свяжите ту и следующую ошибку M-x с коротким сочетанием клавиш).

Узнают о привязке для управления версиями (например, vc-diff, vc-next-action, и т.д.)

Изучают регистры. Не только можно помнить местоположения в буферах, но и целых конфигурациях окна (C-x r w - window-configuration-to-register).

7
ответ дан HD. 23 November 2019 в 21:05
поделиться

Для управления версиями существует несколько вещей, которые можно использовать, в зависимости от какой системы управления версиями Вы используете. Но часть функциональности характерна для всех них.

vc.el является встроенным способом обработать управление версиями на уровне файла. Это имеет бэкенды для большинства систем управления версиями. Например, бэкенд Подрывной деятельности идет с Emacs, и существуют бэкенды мерзавца и другие, доступные из других источников.

самая полезная команда C-x v v (vc-next-action), который делает соответствующее следующее действие для файла, который Вы посещаете. Это могло бы означать обновлять из репозитория или фиксировать Ваши изменения, vc.el также снова переплетает C-x C-q для регистрации и файлы, если Вы используете систему, которой нужен он (как RCS).

Другие очень полезные команды C-x v l и C-x v = , которые показывают Вам журнал и текущую разность для файла, который Вы используете.

, Но для реальной производительности, необходимо избегать использования однофайловых команд vc.el кроме для простых вещей. Существует несколько пакетов, которые могут дать Вам обзор состояния Вашего целого дерева, и давать Вам больше питания, и не говоря уже о способности создать когерентные фиксации, охватывающие несколько файлов.

на Большинство из них в большой степени влияют или на основе оригинала pcl-cvs / pcvs для CVS. Существует даже два из них, который идет с подрывной деятельностью, psvn.el и dsvn.el. Существуют пакеты для мерзавца и т.д.

8
ответ дан dkagedal 23 November 2019 в 21:05
поделиться

Можно найти подробное описание emacs & интеграция управления версиями на мой сайт . Я также работаю над статьей об использовании Emacs как Среда разработки для многих языков - C/C++, Java, Perl, Lisp/схема, Erlang, и т.д.

10
ответ дан Alex Ott 23 November 2019 в 21:05
поделиться

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

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

строки сброса, числовые поля вида, замена-regexp и прямоугольные функции могут быть действительно полезны для взятия дампа от некоторого инструмента и преобразования его к полезным данным, таким как elisp программа, или запятая разграничила электронную таблицу.

я записал страницу о IDE как вещи, которые можно сделать с emacs

http://justinsboringpage.blogspot.com/2007/09/11-visual-studio-tricks-in-emacs.html

, Учась elisp, другой отличный способ ответить для себя, что еще emacs может сделать вне того, что может сделать типичный IDE.

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

http://justinsboringpage.blogspot.com/2009/01/who-changed-line-your-working-on-last.html

я также написал код, который динамично создает комментарии для функции в точке, которая соответствует стандартам кодирования, с которыми я работаю.

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

15
ответ дан justinhj 23 November 2019 в 21:05
поделиться

Я должен рекомендовать Браузер Кода Emacs как более "традиционная" среда стиля IDE для emacs.

РЕДАКТИРОВАНИЕ : Я также теперь рекомендую Magit высоко по стандартному интерфейсу VCS в emacs.

29
ответ дан r4. 23 November 2019 в 21:05
поделиться

Вместо того, чтобы выполнить сделать команду в окне оболочки, Вы попробовали компиляцию M-x? Это выполнит Ваш делать команду, ошибки дисплея, и во многих случаях сделает очень легким перейти к строке кода, который вызвал ошибку, если вывод включает имена файлов и номера строки.

, Если Вы - поклонник IDE, Вы могли бы также хотеть посмотреть на пакет панели кнопок быстрого доступа emac (панель кнопок быстрого доступа M-x). И, если Вы уже не имеете, узнаете о том, как использовать таблицы тегов для навигации по коду.

19
ответ дан Svante 23 November 2019 в 21:05
поделиться

Начальная точка (который может быть неочевидным) для исследования функций VC Emacs M-x vc-next-action.

Это делает "следующую логическую операцию управления версиями" на текущем файле, в зависимости от состояния файла и бэкенда VC. Таким образом, если файл не является объектом управления версиями, он регистрирует его, если файл был изменен, изменения отправлены и т.д.

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

привязка клавиш По умолчанию C-x v v

6
ответ дан Chopmo 23 November 2019 в 21:05
поделиться

Вы также можете найти панель вкладок полезной. Он имитирует единственное поведение, которое я пропустил при переходе с Eclipse на Emacs. Связан с "," и "." для перехода к предыдущей и следующей панели вкладок он избавляет вас от постоянного переключения буфера с помощью Ctrl-x b.

К сожалению, указанная веб-страница не предоставляет правильную версию для загрузки. Однако большинство версий Ubuntu поставляют его в своих пакетах emacs-goodies.

3
ответ дан 23 November 2019 в 21:05
поделиться

Существует TFS.el для интеграции emacs в Microsoft TFS . Он работает с любой TFS, включая TFS, на которой работает Codeplex.com.

Основные шаги для установки:

  1. Поместите tfs.el в путь загрузки.

  2. В файле .emacs:

     (требуется 'tfs)
    (setq tfs / tf-exe "c: \ vs2008 \ common7 \ ide \ tf.exe")
    (setq tfs / login "/ login: домен \\ идентификатор пользователя, пароль")
     -или-
    (setq tfs / login (getenv "TFSLOGIN")) ;; если у вас есть этот набор
    
  3. Также в вашем файле .emacs задайте локальные или глобальные привязки клавиш для команд tfs. примерно так:

     (global-set-key "\ C-xvo" 'tfs / checkout)
    (global-set-key "\ C-xvi" 'tfs / checkin)
    (global-set-key "\ C-xvp" 'tfs / properties)
    (global-set-key "\ C-xvr" 'tfs / переименовать)
    (глобальный набор-ключ "\ C-xvg" 'tfs / get)
    (глобальный-набор-ключ "\ C-xvh" 'tfs / history)
    (global-set-key "\ C-xvu" 'tfs / undo)
    (глобальный-набор-ключ "\ C-xvd" 'tfs / diff)
    (глобальный-набор-ключ "\ C-xv-" 'tfs / delete)
    (global-set-key "\ C-xv +" 'tfs / add)
    (глобальный-набор-ключ "\ C-xvs" 'tfs / status)
    (global-set-key "\ C-xva" 'tfs / annotate)
    (глобальный-набор-ключ "\ C-xvw" 'tfs / workitem)
    
4
ответ дан 23 November 2019 в 21:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: