NetBeans tips & tricks


    Собрался духом и таки описал свой почти 3-х летний опыт использования NetBeans для web-разработки. Статья получилось обширной, и, надеюсь полезной.

    Большинство разработчиков проводят львиную часть своего времени в среде разработки. Но далеко не все используют хотя бы половину возможностей, которые есть в IDE, тем самым делая свою работу местами скучной, монотонной, медленной… Не, это не наш путь! Свой основной рабочий инструмент нужно использовать на полную, выжимать из него максимум, и всё самое неинтересное, все часто повторяющиеся действия перекидывать на плечи программы.

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

    stfalcon.com/blog/post/netbeans--tips-and-tricks

    Далее по тексту — настройка среды, самые крутые горячие клавиши, всякие неочевидные плюшки NetBeans, шаблоны кода, макросы и прочие фичи, которые не раз меня выручали.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 89

      +3
      Я перешел на другую IDE, но до того NetBeans мне очень нравилась, с интересом слежу, что там новенького. Спасибо.
        0
        А на какую, если не секрет? И почему?
          +2
          WebStorm. Из-за лучшей поддержки JS — чего стоят хотя бы инспекции и подсказки из JSDoc'ов.
            0
            Спасибо, попробую )
              0
              Хм попробовал ) Я может чего не понял, но это ведь только Js\html\css Ide?
                0
                Да. Я клиентсайдер.
                А вам что надо? php, ruby, python? есть соответствующие вариации, ищите:)
                  +6
                  Только учтите, что продукты от JetBrains могут вызывать привыкание.
                    0
                    Ну не героин, конечно, но да.
                      0
                      Я уже почти год на этом наркотике. Чую никогда не слезу :)
                      0
                      Здравствуйте, простите, я никогда не использовал продукты JetBrains, по этому хочу узнать. Есть отдельно client-side в WebStorm, а к примеру, я буду писать в PyCharm/RubyMine, там так же будет полноценная поддержка функционала из WebStorm (а именно html/js/css, и прочее)? Спасибо.
                        0
                        Не совсем так. Есть разные клиенты — WebStorm под клиентсайд, PhpStorm под клиентсайд+пхп, PyCharm, RubyMine и т.д. — каждый под свою задачу. А есть IDEA, которая объединяет в себе весь этот функционал.
                          +1
                          Ну вот есть у PhpStorm client-side + php, а разве нету у PyCharm/RubyMine client-side + N-language? ведь я могу писать под веб и на Django/Rails?
                            0
                            В RubyMine поддержка есть (+scss, sass, less, haml(?)), про PyCharm точно не знаю.
                              0
                              Цитирую с сайта PyCharm — Web development with Django framework backed up with excellent HTML, CSS and JavaScript editors. Also with CoffeeScript, Mako and Jinja2 support

                              RubyMine — HTML, CSS and JavaScript editing with auto completion and refactorings. Plus CoffeeScript, HAML, SASS, and LESS

                              Плюс плагины, сотни их
                        +1
                        Вариации:
                        Java — IDEA
                        PHP — PhpStorm
                          +1
                          А так же PyCharm, RubyMine и AppCode.
                            0
                            Кто-то действительно пользуется AppCode? Не сарказм, мне действительно интересно. Xcode — очень хорошая IDE сама по себе, бесплатная и во всей нативной интеграцией и поддержкой.
                              0
                              Честно говоря, просто не в курсе — ни разу не видел ни того, ни другого живьем.
                              Но продукты IntelliJ хороши тем, что глубоко учитывают специфику языков — спросите любого дотнетчика, как поменялась его жизнь после того, как он поставил ReSharper.
                                0
                                У меня есть знакомые разработчики, пользуются, нарадоваться не могут.
                          0
                          Так NetBeans тоже умеет, по-моему еще с 6.8, если не раньше.

                          пример
                            0
                            Значит, я ушел с нее раньше, чем это появилось.
                            0
                            NetBeans сейчас готовят с нуля переписанный редактор JavaScript'a и обещают его интегрировать после выхода 7.2.
                              0
                              Хорошая новость, посмотрим.
                        0
                        Ох, спасибо! ) Я то думал, что уже все полезное и работоспособное одновременно выжал из нее.
                          +3
                          Однажды я выбирал платную IDE, чтобы купить, так как в тех, которыми я прежде пользовался, что-либо не устраивало. Пока не наткнулся на NetBeans.

                          Не нашел в вашей статье, а сам использую часто: Окно -> Задачи (Ctrl + 6).
                          Если в коде ставишь метки на будущее (TODO, @todo), то эта фишка все их покажет списком.
                            0
                            Да, спасибо.

                            Писал по своему опыту использваония, а к списку @todo я обращался редко, поэтому когда и открывал окно — то кликом по кнопке Tasks внизу окна IDE.

                            И раз уж разговор зашел об этом функционале, вдруг кто не знал, кроме стандартных «TODO, @todo» можно добавлять свои ключевые слова (в Tools -> Options -> Miscellaneous -> Tasks).
                            +3
                            Раз уж вы так хорошо знаете Netbeans, у меня к вам пара вопросов:
                            — Как избавиться от возврата к курсору при скроллинге? Очень очень часто, когда прокручиваешь страницу мышью, netbeans, внезапно, сбрасывает скролл к курсору. Страшно раздражает, но увы ничего нагуглить не смог.
                            — Раз в Х часов умирает автодополнение (PHP). Спасает перезагрука IDE. Обычно раза 2-3 за день.
                            — В JavaScript-е не смог заставить работать code-folding. Netbeans так не умеет, или способ есть?
                            — В JavaScript-е автодополнение не видит локальные переменные, объявленные в текущей же функции.
                            — В шаблонах есть галочка «преформатировать код» (или что-то вроде такого, сейчас нет рядом ПК с netbeans), и она портит многие мои шаблоны :(. Если убираю — становится неудобно пользоваться всеми остальными. Попробовал поиграться с XML-файлом шаблона — безуспешно. Правда из вашей статьи, вынес, что можно попробовать заменить шаблоны хитрыми макросами.

                            Я не уверен, что сие применимо к каждой инсталляции Netbeans-а, но у меня наблюдается(ось) на двух машинах (linux) в 3 версиях (7.1, 7.0, 6.9).
                              0
                              NetBeans вообще не понимает замыкания в JS
                                0
                                Ну ладно бы замыкания. В целом autocomplete, на мой взгляд, там хуже, чем даже в базовой сборке sublime-text-2, которая просто отдаёт список всех слов на странице :) Лично у меня он срабатывает только для ключей-функций, объявленных в .prototype текущей конструкции. Настроить разного рода helper-ы я тоже не нашёл как. В итоге Netbeans мало чем отличается от редактора с подсветкой синтаксиса применительно в JavaScript. Поправьте меня, если я не прав.
                                  +3
                                  — Как избавиться от возврата к курсору при скроллинге? Очень очень часто, когда прокручиваешь страницу мышью, netbeans, внезапно, сбрасывает скролл к курсору. Страшно раздражает, но увы ничего нагуглить не смог.

                                  Никогда не замечал. Есть подозрение, что у вас срабатывают какие-то клавиши (например стрелка влево/вправо, etc), или NetBeans думает, что страбатываеют, и скролит обратно к тому месту, где был установлен курсор.

                                  Раз в Х часов умирает автодополнение (PHP). Спасает перезагрука IDE. Обычно раза 2-3 за день.

                                  Также не замечал подобного. Но последние несколько месяцев я больше PhpStorm использую, поэтому не берусь утверждать на счет самых последних сборок NetBeans. С версиями 7.0 и 6.9 прошел огонь, воду и медные трубы — все было довольно гладко.

                                  А по поводу code-folding — работает только на простых структурах (например, для функций схлопывание доступно).
                                  На всякий случай перепроверил на счет JS и автодополнения — нормально закомплитило переменную. Но, снова таки, если это просто переменная. Если же есть некоторая вложенность — проблемы с подстановкой наблюдаются.
                                  Все таки JavaScript — не сильная сторона NetBeans :/

                                  На счет автоформатирования — нужно смотреть ваши настройки и реальные проблемные файлы с кодом. Некоторое специфическое форматирование действительно может сбиваться, поэтому можно пробовать применять форматировщик не для всего файла, а только к выделенному фрагменту, например.
                                    0
                                    Никогда не замечал

                                    Жаль. Самая большая проблема именно в этом. Причём наблюдалась на Windows XP\7, Ubuntu 11.04, Debian 5. Вся соль в том, что в это время используется только скролл, ничего другого не жмётся. Уже выработалась привычка во время скролла останавливаться и переносить курсор в промеж.стадии, чтобы меньше потом по нервам било :)

                                    Также не замечал подобного

                                    В 6.9 не было, в 7.0 появилось :(

                                    работает только на простых структурах

                                    Я имею ввиду, code-folding через спец.комментарии. Т.е. сворачивать большие логич.блоки кода. + они позволяют оставаться им свёрнутыми по умолчанию при открытии файла.
                                      0
                                      Может еще у кого из хабровчан такая же проблема была, и что-то подскажут. Все таки парк ОСей, на которых она воспроизводилась, немалький. Не похоже на частный случай.

                                      code-folding через спец.комментарии

                                      А можно поподробнее? Что-то не припомню такого в NetBeans (или же не до конца вас понял).
                                        +2
                                        А можно поподробнее? Что-то не припомню такого в NetBeans

                                        // <editor-fold defaultstate="collapsed" desc="My Code Here"> 
                                        $some = 2;
                                        ...
                                        // </editor-fold>
                                          0
                                          Спасибо, таки новый для меня функционал.
                                        +1
                                        //<editor-fold defaultstate="collapsed" desc="Bla bla bla">
                                        //</editor-fold>
                                        
                                          0
                                          На мыши присутствуют кнопки вперёд/назад? Если да, попробуйте другую, быть может проблема в этом.
                                            0
                                            Присутствуют, но в последнее время приходится пользоваться мышью без них. Проблема осталась :(
                                              0
                                              Ещё вспомнил. Проблема наблюдалась у коллеги на Debian-е, мышь у него была обычная.
                                      0
                                      Вы скроллите тягая бегунок? Если да, то перестаньте уже его перемещать в горизонтальной плоскости.
                                        0
                                        Если честно, я вас не понял. Я скроллю колесом мыши, в бока колесо мыши у меня не кликается. Scrollbar-ом (вы его имеете ввиду?) я не почти скроллю.
                                      0
                                      Люблю netbeans, но есть одна вещь, которая жутко бесит, часто при клике на таб, он закрывается. В любое место, но точно клик не на крестике закрывающем. Может кто сталкивался?
                                        +1
                                        Подозреваю, что у вас мышь «плющит». Видимо вместо левой кнопки срабатывает средняя.
                                          +1
                                          У меня тоже такое происходит, это не из-за мыши, а из-за того что при клике Netbeans чуть сдвигает вкладку и закрывающий крестик может оказаться под мышью, и когда отпускаешь кнопку мыши вкладка закрывается. Тоже мучаюсь не знаю как побороть.
                                          +3
                                          Лично я использую NetBeans исключительно для Java. У меня на работе это корпоративная среда разработки. Что в нем мне нравится, так это автодополнение кода, намного лучше, чем в eclipse. Достойно вести разработку JavaFx приложений можно вести только под NetBeans. Жаль только что нет официального более-менее вменяемого плагина для разработки приложений на GWT.
                                            0
                                            Я себя же и дополню. В качестве минуса, если в зависимости подключить проект NetBeans (не jar файл, а именно проект) или несколько проектов, и нечаянно на Subdersion его залить вместе с Ant скриптами, которыми он генерирует, а потом их(зависимости) заменить на jar-файлы, то будьте готовы к тому, что IDE развалит ваш проект. И без правки, опять же автоматом генерируемого скрипта Ant скрипта, не выйдет восстановить проект. Конечно, Maven — решает все.
                                            +1
                                            А как выкинуть вкладки и отображать список открытых файлов сбоку?
                                              0
                                              Скорей всего никак. Только если найдется плагин с соответствующим функционалом.
                                                +1
                                                Можно пользоваться Shift + F4 (как вариант)
                                                +2
                                                эхх, кто бы так рассказал о плюшках нетбинса для С, хотя статья хорошая, кину в избранное.
                                                  0
                                                  NetBeans для С\C++ это для джедаев. Тормоза дичайшие.
                                                  Ремотную разработку допилить не могут пару лет если не больше.

                                                  И о существование и использование статуса «RESOLVED WORKSFORME» в трекере стоит упоминать всегда. Лучше со счетчиком (для 7.x чтото около 1200). Стоит взглянуть каменты там чтобы понять что все печально (из серии — вот херня на винде — на маке все пашет, закрываю (как вариант — у меня на линуксе пашет, погоняй на разных ос а я пока закрою)).
                                                    0
                                                    Опаньки, я джедай.

                                                    Если закрыть навигатор, то пошустрее работает. Я еще всякие подсказки отключаю.
                                                      0
                                                      Если все отключать то проще в редакторе понимающем синтаксис работать ))
                                                  +2
                                                  Заодно спрошу, как сделать чтобы Netbeans в том же symfony2 не учитывал TODO,FIXME, ошибки и т.д?
                                                  т.е я хочу чтобы он инспектил мой код, а не фреймворка.
                                                    +2
                                                    можно настроить фильтры:
                                                    в окне Tasks слева кнопка с воронкой, там создаёте свой фильтр, у него во вкладке Keywords ставите Location + Contains и задаёте маску для ваших файлов. можно несколько условий наложить, если одним не выделить все нужные файлы.
                                                    0
                                                    Не первый год использую нетбинс. Из статьи почепнул кок-что новое, например насчет сворачивания кода.//<editor-fold defaultstate="collapsed" desc="Bla bla bla">
                                                    //</editor-fold>
                                                    . Хотелось задать вопрос, относительно форматирования JS кода. Я в большей степени фронт-энд разработчик, однако частенько приходится заниматься и бэк-эндами. В данной случае меня уже очень долго мучает вопрос насчет нормального форматировани JS кода. Для пхп можно выставить отступы, переносы элементов и куча всего прочего. Для ЯС же максимум просто расставляются переносы и все. Гугление по офф сайту ничего внятного не дал
                                                      0
                                                      Прочитал статью, написано хорошо и со смаком, но вот не увидел одной очень хорошей комбинации клавиш alt + shift + f, которая форматирует код. Особенно полезна в случае копипаста, да и в общем у неё довольно много применений. Уже по привычке перед каждым сохранением жму.
                                                        0
                                                        форматирование кода, верно? она описана в статье.
                                                        0
                                                        Использовал NetBeans для Java, но когда попробовал IDEA возвращаться не стал.
                                                        Нетбинс тормозит ужасно, IDEA работает быстрее раза в полтора.
                                                        А python/php/html пишу в emacs.
                                                          +2
                                                          Если сравнить нетбинс с эклипсом и его производной зенд студией, то нетбинс просто летает ;)
                                                            +1
                                                            Да, Я не спорю, IDEA лучшая IDE для разработки. Но Вы забыли упомянуть, что данная среда является платной.
                                                              0
                                                              Есть community edition, она бесплатная+опенсорсная.
                                                              пруф- www.jetbrains.com/idea/download/index.html
                                                                0
                                                                Да, SE — бесплатная. Но если, вдруг, вы планируете писать приложения на EE, то, будьте добры, поделитесь деньгами. Конечно, для простых программистов это ничего не значит. Но, если вдруг, вы решили податься в вверх, и компания, в которой вы работаете соблюдает закон то о бесплатности не может идти речи.
                                                                  0
                                                                  Можно использовать EAP, бесплатно и легально. Плюс регулярные распродажи делают и без того вполне адекватную цену IDEA очень даже приятной.
                                                            +1
                                                            Хотелось бы добавить к статье парочку параметров, которые лично меня спасли от тормозов NetBeans на винде:

                                                            -J-Xmx1024m -J-Xms64m

                                                            Первый параметр резервирует при запуске 1024 мб ОЗУ, второй 64 мб ОЗУ под «кучу». Разумеется, вписать можно другие значения. Ключи для Java, по идее будут работать для любых java-приложений. Параметры можно указать непосредственно в ярлыке после пути к запускаемому файлу.

                                                            Также, хотелось задать несколько вопросов по NetBeans:

                                                            1. Есть возможность отображать в Навигаторе только php-структуры? (игнорировать js, html, css)

                                                            2. Можно ли научить Навигатор распознавать секции типа if {} elseif {} elseif {}… как своего рода функции файла? Работаю с cs-cart, все контроллеры написаны именно этим способом — if ($mode == 'any') { ..., их много, они довольно длинные. Навигатор на них просто пустой :(

                                                            3. Очень не хватает группировки файлов по задачам. Например, работаешь над конкретной проблемой, в ней участвует 15 файлов. Проблема решена, переходишь к другому набору файлов. Прошел месяц, нужно вернутся к прежней проблеме, а значит открыть прошлый набор из 15 файлов. Хотелось бы получить группировку аналогичную группировке проектов.

                                                            4. Как сменить кодировку файла? Иногда NB сообщает что такой-то файл «не UTF-8, все равно открыть?». Закрываю, иду в NP++, меняю кодировку, возвращаюсь… Хотелось бы «не отходя от кассы».

                                                            5. Как «смягчить» режим подсказок? У меня 7.1 и мне очень нравится что smarty (с которым приходится работать) отлично подсвечен и есть автозавершение. Но подсказки не нужны в таком объеме и более того, они не должны блокировать курсор! Постоянно нужно нажимать ESC, т.к. подсказки лезут чуть ли не после каждого введенного символа.

                                                            6. Есть ли плагин для Google-talk? Я работаю в команде, Google-почта и IM — основные средства коммуникации между членами. Было бы просто супер получать и отправлять сообщения не покидая IDE. Я нашел какое-то старое решение (для 6,9 версии) на 7,1 ставится отказалось. Неужели нет ничего свежего для решения такой задачи?
                                                              0
                                                              4. На сколько я знаю, можно только для всего проекта — правой кнопкой по проекту в списке проектов, свойства, кодировка проекта на одной из вкладок
                                                                0
                                                                1, 2 — насколько я понял, в коде полная каша. Для if {} elseif {} elseif {} — точно никак. Все таки это не функционал навигатора. А вот фильтр по типу содердимого в навигаторе звучит логично, но, к сожалению, такого нет.

                                                                3. Такого также нет. Видел схожий функционал в продуктах от IDEA (а конкретно — в PhpStorm)

                                                                4. Кодировка выставляется только для всего проекта.

                                                                5. Подсказки лезут, но чтобы они блокировали курсол — не, не слышал. Или имеется ввиду невозможность перейти ниже/выше на строку, так как вместо этого происходит выбор в селекте от автокомплита? В любом случае — настроек для такого не нашел.

                                                                6. Не встречал. И, честно говоря, не вижу особого смысла городить из IDE комбайн, а то так и в Nero можно превратиться =)
                                                                0
                                                                Я застрял в Aptana Studio и никуда не могу от неё уйти (занимаюсь в основном версткой и мелкими правками в десятках разных сайтов на разных серверах). В ней сильно радует FTP и Connections'ы. Много IDE перепробовал в течение последнего года и ничего другого не смог подобрать.

                                                                NetBeans использовал, когда разрабатывал компилятор на Ruby (даже не спрашивайте зачем) — было неплохо, но для основной работы он, к сожалению, мне не подошел.
                                                                  0
                                                                  не знаете, поддержку xDebug в третьей версии наконец добавили? просто пересел с аптане на нетбеанс именно изза него.
                                                                    0
                                                                    На сколько я знаю, не добавили.
                                                                  +1
                                                                  Вместо Ctrl + E использую Ctrl + X для вырезания текущей строки, еще Shift + F4 удобно — выводит окошко со списком открытых файлов, можно пачками закрывать ненужные.
                                                                    +3
                                                                    Внесу свою лепту:

                                                                    Ctrl + / — закомментировать выделенные строки (или текущую)
                                                                    Ctrl + Shift + / — раскомментировать

                                                                    Ctrl + Shift + M — поставить «закладку» на текущей строке
                                                                    Ctrl + Shift + > — перепрыгнуть к следующей закладке
                                                                    Ctrl + Shift + < — перепрыгнуть к предыдущей закладке

                                                                    очень удобно, быстро привык и теперь пользуюсь на автомате
                                                                      0
                                                                      Для комментирования думаю удобнее Ctrl + Shift + C — оно и комментирует и раскомментирует
                                                                        0
                                                                        Ctrl + / — всё делает.
                                                                          0
                                                                          Ctrl + Shift + C всё-таки удобней, потому что не зависит от выбранной раскладки клавиатуры.
                                                                            0
                                                                            debian, в любой раскладке.
                                                                              0
                                                                              Windows, раскладка имеет значение, что раздражает.
                                                                                0
                                                                                Попробуйте забиндить ещё и кириллический вариант.
                                                                                  0
                                                                                  пардон, промазал :(
                                                                              0
                                                                              Честно говоря мои пальцы намного легче и быстрее ложатся на Ctrl + Shift + C. Правым Ctrl и Alt я вообще никогда не пользуюсь, привык обходиться левыми.
                                                                        • UFO just landed and posted this here
                                                                            +2
                                                                            Про «закладки» на строчке уже сказали. Спасибо.

                                                                            Скажу еще про рефакторинг.
                                                                            Становимся на нужной переменной/классе/методе, нажимаем ctrl+R (rename), вводим новое имя, профит!
                                                                            Для внутренних переменных метода и/или приватных методов/переменных работает без поиска по коду, а на лету меняет в файле.

                                                                            И еще Инкрементный поиск (или как его правильно назвать)
                                                                            ctrl+I
                                                                            1) Можем выбрать тип поиска: Все категории, Действия, Go To Type, Go To Symbol e.t.c.
                                                                            2) Начинаем набирать «Fa», например…
                                                                            Получаем такую картинку:
                                                                            gyazo.com/f2a1a7701b3cf6467993a903d2d9ff69.png?1334910710

                                                                            А еще дебагер (в связке с xdebug)
                                                                            UnitTesting в связке с PHPUnit

                                                                            Пользуйтесь на здоровье ;)
                                                                              +1
                                                                              Спасибо за статью! Сам, в силу природной лени/инертности, так и не разобрался с NetBeans, хотя периодически ставил его. Чувствую, что ваша статья, будет дополнительным «толчком» таки слезть я ZD5.
                                                                                0
                                                                                Спасибо большое за статью. Простите за оффтоп, да и тем более вы работаете с Web, но было бы очень здорово почитать подобную статью по Intellij Idea. Больно уж там всё круто, и одновременно запутано. :) Перебрался туда с NetBeans примерно месяц назад, до сих пор открываю для себя что-то новое.
                                                                                  0
                                                                                  В планах — серия статей по PhpStorm. Думаю, что немало общего для всей линейки IntelliJ IDEA функционала удасться покрыть. Там действительно есть где разгулятся. Единтсвенное, что пока в NetBeans в разы круче реализовано — так это макросы.
                                                                                  0
                                                                                  Кто-нить придумал как сделать дублирование строки, как в ZDE5.5?
                                                                                  Т.е. нажимаешь например ctrl+D и строка под курсором дублируется? При этом важно, чтоб буфер обмена не терялся, оставалось в нем то, что было до дублирования.
                                                                                    0
                                                                                    Есть такое, и даже удобнее, чем тот же Ctrl+D. В статье в первых абзацах про горячие клавиши упоминается.

                                                                                    … А если вместо Alt+Shift нажать Ctrl+Shift + ↑ или ↓, то выделенный блок продублируется в указанном стрелками направлении.
                                                                                      0
                                                                                      То что надо, спасибо, подправил хоткей, чтоб три кнопки не давить и стал полный торт.
                                                                                    0
                                                                                    А кто-то кроме меня nbvi использует? :-)
                                                                                    Самый правильный плагин для тех, кто любит vim.
                                                                                      0
                                                                                      а можно при дебаге добавить игнорирование определенных файлов?
                                                                                      Надоедает постоянно проскакивать через разного рода js-css агрегаторы…

                                                                                      Only users with full accounts can post comments. Log in, please.