Sublime Text 2

    Пару месяцев назад я случайно наткнулся на массу положительных отзывов о текстовом редакторе Sublime Text 2. Попробовав его в деле, я не разочаровался. Теперь это мой основной рабочий инструмент.

    Sublime Text 2 — это платный текстовый редактор, написанный на C++, который:

    • Работает в Linux, OS X и Windows
    • Обладает приличной скоростью работы
    • Приятным интерфейсом (включая всевозможные анимации)
    • Гибко настраиваем (правда, не в GUI, а в json-конфигах)
    • Имеет множество плагинов, число которых растёт как на дрожжах
    • Поддерживает VIM-режим
    • Использует fuzzy-поиск

    Вопрос цены


    Редактор условно-бесплатный или «условно-платный» :) Стоит 59 $ за лицензию (если брать сразу много — есть скидка), но им можно пользоваться и бесплатно. В бесплатном режиме раз в пару часов выскакивает диалоговое окно с предложением редактор приобрести, а также в заголовке окна капсом написано UNREGISTERED. Насколько я знаю, других отличий нет.

    Интерфейс


    Одно из первых впечатлений о программе — она красива из коробки. Правильно подобранные шрифты, цветовая схема, плавные анимации (их здесь больше, чем в большинстве текстовых редакторов и IDE). Всё это имеет смысл, т.к. в итоге радует глаз и не отвлекает внимания. До тех пор, пока редактор не перегружен плагинами, он обладает весьма быстрым откликом, от чего я успел отвыкнуть, используя NetBeans.



    Первое что бросается в глаза — отсутствие какой-либо панели инструментов. Также я пока не встретил ни одного диалогового окна, кроме стандартных окон сохранения/открытия файла. Вместо диалоговых окон используются «слои». Символы пробела и tab-а отображаются только при выделении текста, но в настройках можно задать режим «всегда».

    Справа по борту расположена карта кода. Своеобразный аналог прокрутке страницы в виде pixel-карты, которая представляет из себя сжатый до ~100px по горизонтали код текущего файла (включая подсветку синтаксиса). Помогает в ориентировании по файлу, а также упрощает прокрутку страницы, т.к. действует аналогично scrollbar-у. Сложно наверняка сказать «киллер-фича» это или очередная «свистелка», но в течение всего времени использования у меня так и не возникло желания убрать её.

    Слева по борту может располагаться панель проекта и открытых файлов (View -> Side bar -> Show side bar). Панель проекта — дерево подключённых к проекту директорий с упрощёнными возможностями файлового менеджера (к примеру есть возможность создания новых файлов/папок, переименовывания и удаления, но нет возможности перемещения #UPD оказывается есть, через переименовывание). Панель открытых файлов мне не показалась лишней или излишне дублирующей функционал табов. Табы привычнее, но когда их становится слишком много — найти нужный проще по названию именно в этой панели.

    Доступны полноэкранный режим (F11) и "Distraction Free Mode" (Shift + F11). С первым, я думаю, всё понятно, а вот второй мне был в новинку. Этот режим представляет из себя полноэкранный режим с собственными настройками. Впервые перейдя в него вам доступны лишь сам редактор кода, да строка меню. В ней (во ->View) можно включить/отключить всё нужное/лишнее. Удобный режим для глубокого погружения в работу.

    Режим вертикального выделения является одной из самых важных функций для продвинутых текстовых редакторов. И sublime не исключение. В Linux-версии он активируется правой кнопки мыши при зажатом шифте. Очень удобно при быстрых правках разного рода списков, разметки и не только. Стоит отметить, что ST2 умеет искать и заменять по регулярным выражениям, без чего было бы сложно рассматривать его всерьёз.

    Также стоило бы отметить — горизонтальный scroll. Если на вашей мыши его нет, воспользуйтесь shift + вертикальный scroll. Как оказалось — очень удобно. В статус панели, помимо ошибок и текущей позиции курсора, доступны переключатели текущего синтаксиса файла и размера tab-а.

    Иконки-кнопки для раскрытия/сворачивания регионов кода (функции, блоки, теги и т.д.) несколько не очевидны. Дело в том, что хоть они и расположены, как и должны, слева от строки кода, но, по-умолчанию, отображаются лишь по наведению мыши (это настраивается). Доступны для множества структур, в частности очень порадовала возможность «сворачивания» SCSS-селекторов.

    Sublime предоставляет массу возможностей для множественного выделения и правки. Т.е. можно установить курсор сразу в несколько мест и править код синхронно (при этом будут работать макросы, autocomplete, snippet-ы, буфер обмена и т.д.). Мне очень этого не хватало в Netbeans-е. Установить новую позицию курсора можно через ctrl + left_mouse_click. Или ctrl + left_double/_triple click (выделит слово/абзац целиком). Эти и другие комбинации клавиш и мыши гибко-настраиваемы.

    Fuzzy поиск




    Одна из самых разрекламированных функций редактора — нечёткий поиск. Он позволяет найти «modules/gallery/view/gallery/page.jade» вбив лишь «gapaja». Сказать, что это экономит время — всё равно, что ничего не сказать. В 99% случаев я открываю файлы или нахожу нужную мне функцию по вот таким вот обрывкам, напоминающим какой-то восточно-азиатский диалект :) Из коробки доступны:

    • Ctrl + P — поиск по файлам проекта
    • Ctrl + R — поиск по функциям (по template-ам в XSLT, селекторам в CSS/SCSS и т.д.)
    • Ctrl + Shift + P — поиск по меню (а туда попадают, в том числе, и новые функции из плагинов, т.е. не обязательно запоминать горячие клавиши для редко-используемых возможностей)
    • Ctrl + ; — поиск по словам. Например, вбив dbr, можно найти, где же вы забыли убрать служебный debugger в js-файле
    • Ctrl + G — номер строки (не fuzzy-поиск, но, я думаю, здесь ему самое место)

    Поиграв с этими комбинациями, вы можете обратить внимание на то, что эти режимы можно комбинировать. К примеру, вбив gapaja@gallery_list, мы попадём не в начало файла, а сразу к mixin-у gallery_list.

    Этот список может быть расширен плагинами. О паре таких я расскажу чуть ниже.

    Конфигурирование


    Все настройки осуществляются через правку json-конфигов. Изменения вступают в силу сразу же после сохранения файла. Большая часть настроек, которые вам могут попасться (будь то сам редактор или же его плагины) разделены на 2 части — default и user. Т.е. конечному пользователю следует изменять именно user-конфиги, которые по-умолчанию, как правило, пусты.

    Базовые настройки редактора вы можете увидеть выбрав в меню Preferences -> Settings-Default. Пробегусь по самым ключевым:

    • word_separators — выражение для разделения слов. К примеру, чтобы при двойном клике по PHP-переменной она выделялась вместе с $, эту опцию можно подправить вот так — "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
    • fade_fold_buttons — отображать fold-иконки (раскрытие/скрытие регионов кода) только при наведении мыши
    • tab_size, translate_tabs_to_spaces — размер tab-а и возможность использовать вместо tab-а пробелы
    • folder_exclude_patterns — массив масок для файлов/директорий, которые будут игнорироваться при работе над проектами
    • trim_trailing_white_space_on_save — обрезать лидирующие пробелы при сохранении
    • show_tab_close_buttons — показывать «крестики» на вкладках
    • draw_white_space — показывать символы пробела и tab-а всегда или только при выделении текста
    • save_on_focus_lost — автоматически сохраняться при выборе другого файла или потери фокуса у редактора
    • default_encoding — кодировка по-умолчанию — «UTF-8»
    • fallback_encoding — кодировка на случай, если автоматически определить не удалось
    • auto_complete — вкл/откл «autocomplete». Т.к. ST2 не IDE, то autocomplete из коробки работает по принципу — «вот тебе все слова на странице, выбирай что хочешь». Многим это не нравится.
    • hot_exit — по-умолчанию редактор закрывается без подтверждения о сохранении/не сохранении изменённых файлов. Он просто запоминает их состояние и открывается как будто и не закрывался вовсе. Такое же поведение и при переключении проектов. Эта опция позволяет задать стандартный режим
    • close_windows_when_empty — закрывать программу при закрытии всех файлов
    • preview_on_click — по-умолчанию, при выборе файла в древе проекта, он не создаёт для него отдельный таб, а просто показывает его поверх текущего файла. Можно внести пару изменений и сохранить. Если вы хотите открыть файл «полноценно», то вам необходимо сделать double-click. За это поведение и отвечает сия опция.

    Это далеко не все настройки, а только те, с которыми я столкнулся или мне показались наиболее важными для новичков. Такие опции как preview_on_click, hot_exit могут «испугать», однако я бы порекомендовал попробовать их в деле.

    Горячие клавиши


    Горячие клавиши изменяются по тому же принципу, что и все остальные настройки, и точно также вступают в силу сразу же после сохранения конфига. В случае какой-либо ошибки, вроде неправильной комбинации клавиш, вы можете узнать подробности в консоли (Ctrl + `). Там вообще можно найти много полезных данных. Обратите внимание на картинку справа — это ссылка на подробную карту горячих клавиш (случайно нашёл в сети).

    Думаю сильно углубляться в настройки гор.клавиш нет смысла, т.к. они интуитивное понятны. К примеру, следующий «бинд»:
    { "keys": ["ctrl+e"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} }

    Запускает макрос Delete Line при нажатии Control + E. А этот:
    {
    		"keys": ["ctrl+shift+o"],
    		"command": "fuzzy_file_nav",
    		"args":
    		{
    			"start": "/www",
    			"regex_exclude": [".*\\.(DS_Store|svn|git)$"]
    		}
    	}

    Выполняет команду fuzzy_file_nav (доп. плагин), с аргументами. Возможно вам поможет мой конфиг гор.клавиш. Мышь тоже можно настроить — для этого существуют .mousemap. К сожалению, мне не удалось найти хоть сколько-нибудь подробной документации об этих файлах.

    Работа с проектами


    Если пользоваться редактором вместо IDE, то довольно сложно обойтись без проектов. Изначально вы работаете над проектом «default», и для того чтобы создать новый нужно выбрать в меню «Project -> Save project as». Вам предложат указать путь для конфиг-файла проекта. После создания проекта следует прикрепить к нему рабочие директории (чаще всего она одна, но можно указать и несколько). Для этого выберите «Project -> Add folder to project», после чего она появится на панели слева (при условии, что вы её включили). С этого момента у вас заработает fuzzy поиск по проекту (Ctrl + P).

    Перейдём к его настройке (Project -> Edit project). В нём вы найдёте подцепленные директории. Чтобы исключить из них лишнее, добавьте folder_exclude_patterns: [ "path_1", "path_2", ...] и file_exclude_patterns: [ "*.md",… ]. Изменения, как обычно, вступят в силу сразу после сохранения. Теперь поиск в файлах и fuzzy-поиск по именам файлов будут игнорировать лишнее, а древо файлов слева несколько поредеет. В этом же конфиг-файле могут быть заданы настройки для некоторых плагинов. Например — xdebug. Более подробную информацию вы можете получить здесь.

    Переключение между проектами очень быстрое, что привело меня в восторг после NetBeans. По умолчанию — Ctrl + Alt + P. Редактор запоминает список открытых файлов, активную вкладку, позицию курсора и скролла. Также можно открыть новое окно (не вкладку, Ctrl + Shift + N) редактора и задать там другой проект.

    Плагины


    Ни один текстовый редактор такого уровня не может обойтись без плагинов. Установить плагин можно просто скопировав его в под-директорию User. Самый простой путь найти её — Preferences -> Browse packages. У вас откроется файловый менеджер в каталоге установленных плагинов. Как видите их достаточно много :) Однако есть более простой и правильный путь (для большинства ситуаций) — использование PackageControl. О нём чуть ниже.

    Основной язык написания плагинов — python. Наверное, поэтому их так много. Если вас интересует эта тема, возможно, вам пригодится эта статья.

    PackageControl

    Его установка весьма не очевидна. Сначала переходим на страницу плагина. Жмём зелёную кнопку install и попадаем на страницу с подробной инструкцией по установке. На момент написания статьи она состоит из копирования куска python-кода в консоль редактора (Ctrl + `) и нажатие на клавишу enter. Вы спросите — что за страшные шаманства? Не переживайте, на этом сюрпризы закончились. Дальше всё пойдёт как по маслу (при условии, что PackageControl нормально установился). Я надеюсь, разработчики добавят его в базовую сборку.



    Вызвать «слой» PackageControl можно из меню Preferences -> Package Control. Но проще ctrl + shift +p, а дальше набрать необходимую команду. К примеру, для доступа к «Install Package» мне хватило трёх символов — «ins» в fuzzy поиске. Как же я раньше без него жил? :) Сам модуль предельно очевиден, посему, полагаю, нет смысла расписывать его подробно. Отмечу лишь, что некоторые плагины располагают своими собственными конфигами или гор.клавишами. В этом случае быстрый доступ к этим настройкам можно получить, используя меню Preferences -> Packages settings -> %plugin_name%.

    Небольшая подборка плагинов


    Aligment — позволяет отформатировать конфиги/массивы/что-угодно так, чтобы значения располагались на одном уровне по горизонтали. Не сильно удобная штука, но лучше чем ничего. Для начала следует установить курсоры перед каждым значением, а затем нажать «Ctrl + Alt + A» (в Linux-версии).

    FileDiffs — позволяет сравнить два файла на предмет различий. Добавляет опции «FileDiffs Menu» и «Diffs with tab» в меню таба, а также пару пунктов в контекстное меню самого редактора. Результат открывается в отдельном табе и, как и положено, подсвечивает строки зелёным и красным. Если ничего не открылось — файлы идентичны, о чём будет свидетельствовать сообщение в statusbar-е.

    FuzzyFileNav — Позволяет, используя нечёткий поиск, открыть файл вне проекта, бегая по файловой структуре. Не так круто как в Ctrl + P, но, лично мне, куда удобнее, чем в стандартном диалоговом окне ОС.

    FileHistory — fuzzy поиск по недавно открытым/закрытым файлам. Использовал до того, как нашёл GotoOpenFile.

    GotoOpenFile — копия режима Ctrl + P, но применительно только к открытым файлам.

    JsMinifier — позволяет упаковать выделенный (или весь код текущего файла) javascript. Плагин использует Google Closure Compiler и UglifyJS. Если ничего не произошло — смотрите в statusbar, скорее всего javascript-код не валиден.

    PhpDoc — простой помощник для заполнения PhpDoc. Пользоваться так: пишем /**[tab]. Уже внутри — [собака]var[tab], [собака]return[tab] и т.д. Автоматически определять типы и имена переменных и прочие полезные штуки не умеет, но зато вставляет * при переводе каретки :)

    GotoTab — позволяет переключать вкладки по нажатию Ctrl + [цифры]. Довольно удобная штука.

    SublimeLinter — проверка синтаксиса на лету (или как настроите). Умеет готовить — CoffeeScript, CSS, Java, JavaScript, Objective-J, Perl, PHP, Python, Ruby. Использует уже готовые инструменты. К примеру, для JavaScript-а предлагает выбор между JsLint, jsHint и gjslint. jsHint, который стоит по умолчанию, не просто проверяет синтаксис, я навязывает вам свой true-coding-style, что частично можно настроить в конфиге. Мне этого не хватило, т.к. библиотека оказалась не столь гибкой, как бы хотелось, посему пришлось применять хирургические методы :) Также стоит отметить, что SublimeLinter способен заставить ваш редактор — подвисать. В таком случае — покопайтесь в настройках, он достаточно гибко настраивается.

    Tag — библиотека, предоставляющая удобные средства для работы с XML. Использую для приведения XML к читаемому виду. Конечно, на этом его возможности не ограничиваются. К примеру, набрав «div» и нажав ctrl + shift + "," я получаю <div></div> с курсором внутри.

    XDebug — отладчик xdebug. Не очень удобный. Отладка в NetBeans куда удобнее. Однако для простых задач — может пригодиться. Пользователям *buntu обязательно следует прочесть раздел «Troubleshooting» на странице плагина.

    LastEdit — глючный аналог ctrl + q в Netbeans. Перемещает курсор в места недавних изменений. Очень удобная штука, но, к сожалению, часто не срабатывает. Если вас интересует эта функция, возможно, вам стоит попробовать и этот плагин.

    Более полный список доступен здесь. Но далеко не все плагины, которые мне попадались — в нём есть.

    Подсветка синтаксиса из коробки достаточно обширна. Однако для nginx и apache2 конфигов, SCSS и Jade мне потребовалось установить плагины. Если для используемого вами языка такого плагина не нашлось, попробуйте портировать подсветку из TextMate, благо очень многие вещи из него поддерживаются как нативные.

    Snippets


    Snippet-ы — это заранее заготовленные куски кода, с расставленными в них якорями. Т.е. вместо того, чтобы писать <xsl:when test="some">some code</xsl:when> можно написать snippet. Приведу простой пример:

    <snippet>
    	<content><![CDATA[for( var ${1:name} in ${2:source} ) if( ${2:source}.hasOwnProperty( ${1:name} ) )
    {
    	var ${3:iterator} = ${2:source}[ ${1:name} ];
    	${0:// code}
    }]]></content>
    	<tabTrigger>forin</tabTrigger>
    	<scope>source.js</scope>
    	<description>for( var name in source</description>
    </snippet>

    tabTrigger — строка, которую потребуется набрать и нажать tab (полностью набирать не обязательно, т.к. Snippet-ы попадают в autocomplete). После активации курсор перемещается к $1 и выделяет «name», следующее нажатие tab выделит source, который будет изменяться сразу в 3 местах. По окончанию работы snippet-а вы попадёте в $0. Чтобы прекратить его работу досрочно — нужно нажать Esc. В отличии от Netbeans, я смог задать все нужные мне Snippet-ы без проблем с «упрыгиванием» курсора в начало файла, мешанины из отступов и прочего непонятного поведения (если читатель хочет назвать меня «криворуким», могу привести пример такого поведения :) ). Scope — определяет тип файлов, в которых snippet будет задействован, а description вы увидите в autocomplete.

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

    Макросы


    Макросы и в Африке — макросы. Начать запись можно через Tools -> Record macro, остановить — там же. По окончанию его следует сохранить (Tools -> Save macro) в Packages/User директорию. Открыв итоговый файл, вы увидите json-массив со списком произведённых действий. Задать макросу горячую клавишу можно используя следующий синтаксис: { "keys": ["alt+1"], "command": "run_macro_file", "args": {"file": "Packages/User/%your_macros%.sublime-macro" } }.

    Layouts


    О том, что в ST2 есть слои, я узнал совсем недавно, увидев screenshot на lor-е. Слои позволяют поделить окно редактора на несколько частей (2, 3, сеткой и т.д.). Это очень удобно, когда что-то пишешь в один файл, опираясь на содержимое второго. Но с моим 19" «квадратным» монитором эта возможность выглядит не очень привлекательной. К сожалению, нельзя открыть в разных слоях разные проекты. Также стоит отметить, что панель открытых файлов (которая слева), после включения режима нескольких слоёв, делится на несколько групп.

    Заключение


    Sublime Text 2 — отличный выбор для программиста или администратора. Для рядового пользователя, на мой взгляд, больше подошёл бы редактор без json-конфигов и с более очевидным GUI.

    Важно понимать ST2 — текстовый редактор, а не IDE, хотя, используя сторонние плагины, его можно несколько приблизить к этому статусу. Правда, мне так и не удалось завести умный autocomplete.

    А этом обзоре было много критики в сторону NetBeans, но я бы хотел отметить, что эта IDE мне нравится, и я до сих пор ей пользуюсь, хотя и крайне редко (к примеру, для отладки nodeJS или PHP-xDebug). Мне очень не хватает в ST2 столь же удобного средства для «патчинга» файлов, просмотра предыдущих версий, документации и разного рода вкусных штук, присущих IDE, вроде перехода к определению функции при нажатии ctrl + left_click, даже если файл находится чёрт знает где. Однако ST2 дал мне куда большую лёгкость и удобство при решении рядовых задач.

    К сожалению, я не смог описать в этой статье всего, о чём меня попросили. Виной тому — отсутствие времени, а местами опыта. Однако, я возлагаю большие надежды на комментарии снизу. Уверен, в них будет много интересного.

    Ссылки


    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 284
    • +28
      за картинку с хоткеями отдельное спасибо
    • 0
      Перлез на ST2 с eclipse, но остались несколько вопросов:
      — как изменить выделение кавычек, скобок и т.д.? Чтобы они не выделялись полностью каким-то ужасным цветом, а, например, просто подчеркивались снизу.
      — как сделать свои настройки для проекта? Например переименовать проект (а то сейчас он называется так же, как и папка в которой лежит)? Или настроить кодировку для каждого проекта?
      — как сделать так, чтобы открывающаяся пустая вкладка уже была с синтаксисом HTML? Чтобы не лазить каждый раз View->Syntax->HTML
      • 0
        по последнему, видимо, надо сразу файл сохранить с расширением соответствующим.
        • +1
          По последнему:
          github.com/spadgos/sublime-DefaultFileType

          Сразу в новой вкладке ставит нужный синтаксис. Чертовски рад был этому плагину
          • 0
            Спасибо!
          • 0
            — Изменить выделение кавычек, скобок и т.д. можно сменив тему оформлению или подправив её.
            — Переименовать можно переименовав соответствующий файл *.sublime-project, а по настройкам в статье же дана ссылка на Projects.
            — Кроме ручного изменения синтаксиса, можно создать открыть только что созданный пустой файл с нужным расширением, или создать прямо в Sublime Text 2 и сохранить с нужным расширением.
            • +1
              последнее я решаю просто «Ctrl+shift+P, synh»

              Т.к. мне один дефолтный синтаксис не поможет — плагины не подошли.

              А вообще именно из-за этой фичи я пересел notepad++ на ST2 как на основной редактор, несмотря на то, что NPP тоже мощный и даже обыгрывает по разным вопросам ST2. Но эта фича…
              • 0
                Для подсветки скобок использую BracketHighlighter, можно настроить по разному,
                вот пример
                imageСодержимое
                • 0
                  Он стоял. Я думал, что это из-за темы, а выяснилось, что надо было его настраивать:) Спасибо!
                • 0
                  Может кто подскажет как сделать подобную цветовую схему в Eclipse? (возможно у кого-то есть готовый сетиинг или ссылочка?)
              • 0
                Тоже на него перешел после объявления второй версии. Только, у меня почему-то русский словарь не подключается :( Скачал например вот этот. Подключил и он появился в меню. Но когда выбираю его, проверка не происходит.
                • +4
                  Тоже намучился с этим. Потом разобрался.

                  1. Кидаете файлы .dic и .aff в папку с пакетами программы (Preferences — Browse Packages).
                  2. Открываете.aff и смотрим какая кодировка указана в первой строчке (Set ..., у меня было SET KOI8-R). Выбираем в меню File — Reopen with Encoding и открываем в той кодировке, которая была указана.
                  3. в переоткрывшемся файле меняем SET KOI8-R на SET UTF-8. И сохраняем в кодировке UTF-8.
                  4. Открываем файл .dic, и сохраняем его точно также как и первый, только прописывать ничего не надо.
                  • 0
                    Спасибо большое. Инструкция помогла.
                    • 0
                      Спасибо, работает. Только, словари какие-то уж слишком слабенькие:(
                  • 0
                    А папки в проект может с удаленного сервера по SSH/SFTP прицеплять like Zend IDE 5.5?
                    • +2
                      1, 2, 3
                      • 0
                        Самое адекватное первое. Написано, что платное, но оно как и st2 с неограниченной триал лицензией.
                        Но Will Bond крутой мужик — можно и заплатить:)
                        • 0
                          что-то не вкурил — под Windows нет Map to Remote. В общем все через плагины что возможно прикольно, но не нативно ни разу
                          • 0
                            Я под виндой тоже запускал.
                            Ставишь плагин, перегружаешь sublime, правой кнопкой по проекту Map to Remote или в корне проекта создать файл sftp-settings.json, прописываешь свои настройки и все работает.

                            Это достаточно не популярная функция по-этму и в плагинах.
                            • 0
                              всеже встроенные средства типа Zend 5.5 удобнее всего. Пока у него один минус — под OS X Lion при выделении белое на белом — глюк
                      • +1
                        А можно ли там просто иметь дерево файлов на удаленном фтп без синхронизации их всех себе? Ине нафиг не нужен проект на 1000+ скриптов, учитывая что править надо обычно не больше 10-20 файлов…
                        А то я так понял пока не синхронизируешь все файлы — удаленного каталога не увидишь?
                        • 0
                          У меня та же проблема. Парк на 500 виртуальных машин, везде нужно лазить по дереву постоянно. ST2 решения обеспечивают навигацию только через оверлей (такой же как ctrl + p), но не через боковую панель как в случае локальной директорией. Где-то я вычитал, что нормально сделать не получается пока из-за самого устройства боковой панели в ST2.
                          Для меня это большая проблема, так что сижу по-прежнему в бесплатном Komodo Edit, где все это есть из коробки, даже не надо плагины никакие подключать.
                          • 0
                            это печально :(
                            у меня схожая ситуация — скажем так, я работаю с множеством веб-проектов на которых мне нужно вносить небольшие правки (обычно в 5-10 файлов в каждом) при этом каждый проект сам по себе состоит из 1-2к файлов… значит остаюсь на notepad++ )
                        • 0
                          Напрягает, что невозможно работать через sshfs — тормозит безбожно. Постоянно пересканирует файлы проекта.
                      • –9
                        Еще можно сказать про форматирование кода встроенными средствами.
                        • +1
                          Sublime Text 2 — это платный текстовый редактор, написанный на C++
                          адепты Python'а негодуют
                        • 0
                          На последнем 2.0.1 SublimeCodeIntel завёлся
                          • 0
                            Никак не пойму, делает ли он что-либо вообще. Или это специфика моего php-фреймворка — Codeigniter'a?
                            • 0
                              Sublime Text 2 Build 2216. Всё ещё не работает для PHP. Пишет «Info processing PHP, please wait» уже минут 15-20.
                              • 0
                                На 2217 не только ничего не пишет, но даже и никаких комманд не предлагает кроме экспорта аннотаций
                                • 0
                                  Я в этом вопросе ничего не решаю. Скачал с сайта последнюю версию билт 2217 и через package control установил. Всё.
                                  • 0
                                    С каким языком?
                                    • 0
                                      Английский. Параметры оси ubuntu12.04@3.2.0-26-generic. Но дома ничего не происходит по хоткеям.
                                      • 0
                                        Занятно. Хотя я про язык программирования спрашивал :D
                                    • 0
                                      и на какой ОС?
                                      • 0
                                        А дома ничего не происходит по горячим клавишам. ubuntu12.04@3.2.0-26-generic
                                • –2
                                  << «modules/gallery/view/gallery/page.jade» вбив лишь «japaja»
                                  Простите, что?
                                  • 0
                                    А если по делу, вы пробовали PHPStorm? Да, я понимаю, что вы не об IDE, а о редакторе пишете, но субъективно, не можете сравнить? ST2 интересно было бы попробовать, но на это нужно много времени (обкатать, настроить, убедиться, что чего-то нет, например).
                                    Хотелось бы, по пунктам, чего именно в ST2 не хватает для разработке, по сравнению пусть даже с NetBeans. В статье, в основном, плюсы, о минусах только абзац-два
                                    • 0
                                      phpstorm не умеет работать с файлами на удаленном сервере (нормально). Потому, для многих он не подходит. В итоге, купленную лицензию отзывать не стал (может, сделают за год), но получилось типа донейта, реально, остался на 7м komodo и zend 5.5 (последний работает несколько хуже, но умеет искать по файлам на удаленной ФС).
                                      • +1
                                        а зачем работать с файлами на удалённом сервере? это не риторический вопрос, а любопытно какие бывают ситуации.
                                        если мы о написании кода, а не об администрировании говорим.
                                        я тоже раньше частенько этим грешил, а потом привык с cvs работать.
                                        • –2
                                          Потому, что размер проекта не позволяет работать с ним локально, нужно отдельное окружение для разработки. Работать, в том числе, удаленно, потому samba и подобное, не вариант.
                                          • –1
                                            Когда пишешь для операционки, отличной от десктопа. На удалённой (виртуальной) машине исходники хранятся, там же и запускаются.
                                            • –1
                                              Почему прям там не запустить редактор? VNC, RDP, просто ssh в конце концов…
                                              • 0
                                                Глупость номер раз — таскать кучу трафика с графикой и терпеть тормоза на adsl и хуже, вместо того, чтобы передавать несколько килобайт кода в минуту и то, только в минуты активности.

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

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

                                                Не хватает только умной автоподстановки для классов, определнных в проекте (но не открытых в редакторе). Но это, имхо, небольшая потеря, если смотреть на преимущества.

                                                Да и теоретически, реализуемо, демоном, что работает на сервере и с которым общается редактор. Но я не видел толковых реализаций.
                                                • +1
                                                  откройте для себя VIM
                                                  • 0
                                                    Не хочу. Мне не нравится vim, но в целом, он мне не сильно поможет. На плохом соединении, удаленный vim работает очень неприятно в плане скорости.
                                                    • –2
                                                      Откройте для себя хорошее соединение.
                                                      • +1
                                                        Спасибо КО, дома и на работе у меня 100Мб с пингом 2мс до сервера разработки. Но по всей стране, увы не провели такого (особенно, по воздуху), про другие страны я не говорю.
                                                        • 0
                                                          Спасибо, теперь стало понятней. Вы один из тех людей, которые переживают за Россию-матушку: «у меня-то все работает, и соединение быстрое, но мне vim не подходит, потому что теоретически я могу оказаться в такой ситуации, когда у меня нет быстрого соединения под рукой и нужно срочно поправить что-то на сервере».
                                                          • 0
                                                            Я из тех людей, которые делают там, как им удобно. В том числе, работаю вне офиса и дома, когда мне так хочется. И я если я решил поработать в кафешке, где не очень хорошее качество wifi (или вообще него его, через 3g), то я не люблю наблюдать, как с секундным лагом перемещается курсор в этом самом vim.

                                                            И с чего я вообще должен подстраивать свое поведение под иструменты, если я и так знаю, как мне удобнее работать и могу подобрать инструменты под себя?
                                                            • 0
                                                              А как вы предлагаете решить эту проблему в других редакторах? Вим умеет делать такое: vim server/file или ssh://server/file если вам не нравится удаленное соединение с сервером по ssh и запуск вима например в tmux`е.
                                                              • 0
                                                                1. Мне не нравится vim. Вообще, пользуюсь, когда нет выхода, но в принципе, стараюсь этого избегать.

                                                                2. В других редаторах я подключаю удаленную папку. Захожу в нее и редактор по ssh получает ее структуру (и кэширует). Открываю файл — редактор его получает по ssh и открывает, я его редактирую в удобном режиме, нажимаю сохранить и редактор сам закидывает его на ssh, прозрачно для меня.
                                                                Открытие и закрытие файлов занимает время (пару секунд на 3g), но редактирование не отличается по отзывчивости от локального.
                                                                • 0
                                                                  С пунктом 1 ничего не поделаешь, ну не нравится и не нравится.
                                                                  А пункт 2 точно такой же как и везде.
                                                                  • 0
                                                                    Нет, не везде. Многие редакторы в таком режиме работать не умеют (в том числе и phpstorm, с которого началась ветка).
                                                                    • 0
                                                                      Но речь то идет о виме!
                                                                      Вы написали выше что он не устраивает Вас по двум причинам, одна из которых ложная(вторая).
                                                                      • 0
                                                                        Ладно, я лжец, хватит;)
                                                  • 0
                                                    Меня sshfs выручает в таком случае когда имею дело с такими TE/IDE
                                                  • 0
                                                    Не везде можно запустить хороший редактор. Иногда даже теоретически.
                                                • 0
                                                  В моем случае есть несколько сотен виртуальных машин с разными операционками и конфигурациями, на которые автоматика забрасывает пакет функциональных тестов, запускает, вытаскивает результаты. Кроссплатформенное тестирование, короче. Когда нужно более детально разобраться, почему тот или иной тест завален, нужно лезть на сервер, открывать файл скрипта, что-то там в нем править, запускать его отдельно от всего тестового пакета и т.п.
                                                  Так как в ST2 удобно (т.е. через боковую панель) я не могу лазить по удаленному дереву файлов, то по-прежнему пользую Komodo Edit.
                                                  • 0
                                                    А в автомате монтировать удаленную папку/папки с помощью плагина (написать самому), или вручную и работать с ней как с локальной?

                                                    чисто теоретически для ST2 я это так вижу:
                                                    1. написать свой/доработать имеющийся плагин для подключения к удаленной файловой системе по ssh таким образом, чтобы закидываемый на сервер скрипт имел дополнительный функционал в виде fuzzy-поиска на самом сервере.
                                                    2. написать свой/доработать имеющийся плагин fuzzy-поиска таким образом, чтобы он для удаленных файловых систем не сам производил поиск, а передавал скрипту из п.1 аргументы поискового запроса, получая в ответ списком результаты поиска (возможно не все а первые n совпадений)
                                                    3. Возможно добавить кэширование для открытых файлов

                                                    Возможно я ошибаюсь, но мне кажется подобный подход значительно увеличит скорость работы с удаленными файловыми системами, и будет применим в той или иной степени ко всем редакторам, в том числе и не умеющим работать с удаленными системами.
                                                • 0
                                                  Я из за удобной работы с удаленными файлами так и сижу на zend studio 5.5.
                                                  • +2
                                                    Переходи на PHP storm. А reformat code — это просто сказка… выставил правила форматирования кода… поставил дома, на работе, на ноуте один конфиг и все пучком…

                                                    пишешь как попало… нажал реформат и красиво оформленный код — отступы, выравнивания… все как доктор прописал…

                                                    Самое главное — у тебя в комитах никогда не будет лаж типа вместо 1 пробела теперь там 2
                                                    • 0
                                                      Блин, ну выше же написали, что не умеет этот php storm нормально работать с удаленными ФС (точнее, по ssh).
                                                      • 0
                                                        Вполне нормально он работает с удалёнными ФС. У меня проект на сервере, через sftp открыт, всё ок.
                                                        • 0
                                                          Это как? Разве может отображать удаленное дерево ФС в боковой панельке?
                                                          • 0
                                                            Вот так? (нажимабельно) Слева локальное дерево, справа удалённое.

                                                            image
                                                          • 0
                                                            Не нормально. Попробуйте какие-то файлы поменять с другой машины. Что нужно сделать, чтобы на основной изменения увидеть?
                                                            • 0
                                                              Это да, такого нету. Надо перекачивать всё. Zend мониторит файлы на сервере?
                                                              • 0
                                                                Zend ничего не перекачивает, он открывает файл сразу с сервера, туда-же и сохраняет. Промежуточного хранения нет. Потому, поиск по файлам выполняется небыстро. Но остальное работает отлично.
                                                                • 0
                                                                  Понятно. VS.Php так работал раньше. Не знаю как сейчас. Но это тоже не очень удобно. Если нет сети — ничего и не сделаешь.
                                                                  • 0
                                                                    Если нет сети, то никак не сделаешь, окружения то локально тоже нет. Так что это не проблема.

                                                                    Многие редакторы сейчас так работают. Но в каждом не хватает какой-то мелочи (например, удаленный поиск по файлам, пока, только в Зенде видел)
                                                                    • 0
                                                                      Ну окружение то и локально может быть, почему нет. Не говоря уже о какой-нибудь вёрстке. Локально шаблоны в браузере покрутил, а потом синхронизировал как коннект появился. И локальная копия, в особо запущенных случаях, может как бэкап пригодиться.
                                                                      • –1
                                                                        Когда локально есть окружение, то смысл вообще с sftp играться? На продакшене править — не очень хорошая идея.

                                                                        Я писал выше, часто окружения локально быть просто не может (из-за размера проекта и набора используемых технологий), вот в таких случаях, на dev сервере тоже идет работа через sftp и в данном случае, phpstorm и не у дел оказывается.
                                                                        • 0
                                                                          Тут больше зависит от того, сколько людей работает. Если вы один — то вполне достаточно, всё равно больше никто не правит. Если несколько — да, неудобно. Тогда лучше через гит с дев-веткой.
                                                                          • –1
                                                                            Вообще не зависит. У меня отдельное окружение, в котором я один. Но работать я могу с домашней машины, рабочей, с ноутбука, в экстренных ситуациях, с чужого ноутбука (по ssh локальным редактором). Каждый раз тратить полчаса на перекачивание проекта, если поменял компьютер, это глупо как-то.
                                                                          • 0
                                                                            Я может быть упустил ответ на свой вопрос где-то выше, тогда извините, но вот все-таки: что мешает работать с vcs? Правите код здесь, собираете/выполняете на удаленной машине. В качестве прослойки — система контроля версий. Зачем sftp тогда?
                                                                            • 0
                                                                              Смысл в том, чтобы в реальном времени видеть последствия изменений в коде. Это одно из важнейших преимуществ интерпретируемых языков (не надо компилить или деплоить перед тестовым запуском — только после серии протестированных изменений).
                                                                              • 0
                                                                                Понятно, ну да вполне причина чтобы выбрать другой инструмент.
                                                                • 0
                                                                  use sshfs if linux.
                                                                  • 0
                                                                    Я перепробовал очень много вариантов, в том числе этот. В случае обычного редактора, не проблема использовать sshfs даже под виндой. Но phpstorm начнет переиндексировать проект и просто повесится. Равно, как и любая IDE, что работает со всеми файлами проекта, а не только открытыми.
                                                                    • 0
                                                                      А какая разница получается, если IDE лезит сама через ssh или ей подсунули sshfs? Разве что если в ней выключается индексирование по определённым условиям, но тогда, думаю, можно из индексирования убрать конкретную папку, в которую замаунчен sshfs.
                                                                      • 0
                                                                        Ну в таком случае, все равно, нет смысла использовать IDE, которая работает с ssh через задницу, вместо той, что делает это так, как мне удобно.
                                                      • 0
                                                        PHPStorm я пробовал. Но так и не перелез на него, в виду того, что он очень сильно отличается от Netbeans. Нужно было много времени на привыкание и поиск решений, а у меня его было мало. Триал-лицензия истекла. А ST2 мне понравился и показался удобным сразу, из коробки. Я настроил какое-какие бинды как в Netbeans, и в принципе остался доволен.
                                                        ST2 не хватает для разработке, по сравнению пусть даже с NetBeans
                                                        Мне не хватает умного autocomplete, возможности перейти к декларации функции, умной встроенной справки, к примеру, по php, особой подсветки глобальных переменных в JavaScript и т.д… Т.е. штук, для которых нужен мощный синтаксический анализатор, кои присущи IDE. Для ST2 есть codeIntel, но у меня он не завёлся. romy4 подказывает, что в версии 2.0.1 починили.
                                                        о минусах только абзац-два
                                                        Это потому, что плюсы очевидны, а минусы могут быть локальными. К примеру, у меня периодически наблюдается следующий баг: курсор отображается только вначале строки, а после рестарта редактора — он не запоминает какой проект был открыт ранее. К сожалению у меня пока не было времени на локализацию проблемы, а писать про то, в чём не уверен…
                                                        • +2
                                                          Я пробовал PhpStorm. Очень им доволен, но! Он «тяжелый». Кушает много памяти и долго грузится. Если я начинаю активно и долго работать над проектом, то запускаю PhpStrom. А для мелких быстрых правок — SublimeText.
                                                          • +1
                                                            в ST2 нету:
                                                            — Автокомплита. (CodeIntel это простенькая вещица, которая почти ничего не понимает. Про наследование даже не надейтесь. Прототипированные языки, тоже не для него.)
                                                            — Перехода к определению метода/класса (Ctrl+Click)
                                                            — Рефакторинга
                                                            — Поиска по имени класса

                                                            и т.д. со всеми вытекающими, что ST2 не понимает метаданных языка, на которым вы пишите. Например, не будет проверки namespace, проверки передаваемых параметров в методы.
                                                            • +1
                                                              Плагин ctags (https://github.com/SublimeText/CTags) успешно прыгает к реализации функции, но для сложного ООП наверное надо что-то мощнее. Если реализаций несколько, он просто предлагает выбор, а не пытается догадаться по типу объекта, языку и т.п.
                                                              • +1
                                                                Согласен, что такие плагины как CTag и CodeIntel добавляют функционал автокомплита и переход к месту определения, но лишь чисто символически.
                                                                С более менее средними проектами они ужа абсолютно не справляются.
                                                              • 0
                                                                Пользуюсь CodeIntel на большом проекте, конечно вещь глючная, но и с наследованием работает, и прыгает корректно.
                                                                • 0
                                                                  Ну не знаю, возьмите любой проект на Symfony 2, Yiiframework, web2py, django.
                                                                  У меня оно почти ничего не ловило, кроме как методы самого класса.
                                                                  Про anotation вообще можно и не мечтать
                                                                  • 0
                                                                    Пока не было возможности испытать что-то отличное от пхп, но тут понимало и аннотации (return работал точно), и наследование, да почти все.
                                                                    Но опять же — работало глючно. Иногда переменные ну никак не хотели быть объектами, и так далее.
                                                                    • 0
                                                                      У меня так и не получилось завести CodeIntel так, чтобы он нормально заработал. Судя по логам, из-за кодировки :(
                                                                  • 0
                                                                    Пишу проект на большом фреймворке, ловит очень редко, и то через раз.
                                                              • 0
                                                                Спасибо. Это была опечатка, исправил. Я имел ввиду gapaja — modules/gallery/view/gallery/page.jade
                                                              • +1
                                                                Мне вот очень нехватает автодополнения из закрытых (не открытых) файлов из какой-нибудь указанной директории.
                                                                • 0
                                                                  All Autocomplite Package, возможно, поможет вам. Если я, конечно, правильно вас понял.
                                                                  • 0
                                                                    *Autocomplete, конечно. Работает вроде бы немного не так, а по открытым в данный момент файлам. Но вдруг подойдет.
                                                                    • 0
                                                                      +1 и спасибо большое! теперь намного лучше!
                                                                • +1
                                                                  Что касается unregistered версии: окошечко с предложением купить всплывает каждые 20 сохранений. Однако есть трюк. Если в этом окошке нажать «купить», то браузер полезет на страницу оплаты, а sublime перестанет больше выкидывать окошки (до закрытия программы).
                                                                  • +11
                                                                    Я не пожалел 2000 рублей за качественный продукт и оплатил труд автора.
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                        • +12
                                                                          Мы очень сильно переживаем за опыт пользователей, которые оплатили программный продукт
                                                                          • 0
                                                                            Или не оплатили и чуть ли не гордятся этим.
                                                                          • +9
                                                                            Обычно эта фраза означает, что в предыдущем комментарии говорится о вещах, которые относятся к личным делам автора и бесполезны для других посетителей сайта.
                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                              • +2
                                                                                shsmad подсказал пользователям каким образом можно реже видеть окошко с предложением о покупке, чем улучшил опыт общения с программой для многих пользователей, а javascript рассказал нам что он купил это ПО, однако его никто об этом не спрашивал, строго говоря это вообще глубоко личное дело купил ты или нет, а его комментарий в свою очередь никоим образом не повлиял на осведомлённость пользователей в интересующей их области.

                                                                                С таким же успехом я могу вам рассказать чем я сегодня завтракал. Вам это может быть интересно?
                                                                                • 0
                                                                                  Я рассказал, что я сделал в случае когда в любимом софте вылазит окошко с предложением о покупке. Потому что меня воротит от лайфхаков в духе «как забыть о том, что нужно платить за чужой труд».

                                                                                  Представьте, что вы работаете на заказчика, которому нужно постоянно напоминать, что вам нужно заплатить. А он находит эдакий лайфхак типа «приезжай за деньгами завтра», а сам уезжает в отпускна две недели. И вот так хакает вас месяцами. Клёвенько?
                                                                                  • 0
                                                                                    Я рассказал, что я сделал в случае когда в любимом софте вылазит окошко с предложением о покупке.

                                                                                    Нет никакой необходимости описывать очевидный выход из ситуации. Меня воротит от огромного количества «лайвхаков», но это же не моё дело как люди живут, верно?

                                                                                    Донатить это круто, но ещё круче когда все это делают молча.

                                                                                    btw, зачем вам работать с заказчиком, который нарушает договор?
                                                                                    Разработка ПО под заказ — это услуга, покупка лицензии — это приобретение права на пользование. Не смешивайте пожалуйста эти понятия.
                                                                                    • +1
                                                                                      покупка лицензии — это приобретение права на пользование

                                                                                      То есть Вы осознаёте, что без лицензии нету права на пользование.

                                                                                      И я считаю, что в России нужно открыто говорить об оплате софта, донациях и прочих поощрениях качественного труда.

                                                                                      Только тогда когда это станет нормой, у амбициозных людей появится уверенность, что делать качественно — это выгодно и приятно.
                                                                                      • 0
                                                                                        То есть Вы осознаёте, что без лицензии нету права на пользование.

                                                                                        Ну конечно.

                                                                                        Другое дело что мне не нравится необходимость покупать лицензии, особенно когда производитель явно отказывается от каких-либо гарантийных обязательств и при этом не открывает мне код.
                                                                                        Мне нравится просто выражать благодарность пожертвованием.
                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                    • –1
                                                                                      Право же вы и раньше знали что можете за него заплатить, если этот комментарий вас просто вдохновил на этот подвиг, то это круто, но на вашу осведомлённость он не повлиял.
                                                                                      Внимательно читайте мои комментарии — я всегда стараюсь быть предельно корректным.
                                                                                      P.S.: Я не завтракал.
                                                                      • +2
                                                                        Кстати, клевая, но неочевидная штука, которую не видел в обзорах:
                                                                        Для того, чтобы держать свой редактор в актуальном состоянии везде достаточно синхронизировать дропбоксом Packages/User/Package Control.sublime-settings и Package Control будет доустанавливать недостающие плагины сам если где-то что-то устанавливаешь.
                                                                        • 0
                                                                          Так он же вроде в portable виде и распространяется? Т.е. ничего не мешает вообще весь редактор через любой облачный сервис синхронизировать
                                                                          • 0
                                                                            Когда использовал dropbox+git убедился, что это не самый лучший способ хранить множество мелких файлов, обновлять их и тд. stackoverflow.com/questions/2199637/is-this-plain-stupid-git-sharing-via-dropbox и не только я.
                                                                            по-этому я не использую его для хранения программ.

                                                                            К тому же такой способ синхронизации советовал Will Bond, когда спрашивал про планы синхронизации Package Control.
                                                                        • +1
                                                                          Кстати. А есть ли какой-либо плагин, позволяющий в ST2 переходить к файлу/строке обявления класса/переменой?
                                                                          • +1
                                                                            Fuzzy-поиск позволяет это сделать.
                                                                            Поиграв с этими комбинациями, вы можете обратить внимание на то, что эти режимы можно комбинировать. К примеру, вбив gapaja@gallery_list, мы попадём не в начало файла, а сразу к mixin-у gallery_list.

                                                                            После собаки (@) в качестве разделителя поиск идет уже внутри файла, найденного по предваряющему разделитель паттерну. Ищется по объявлениям классов, методов и т.д.
                                                                            Если использовать двоеточие (:), то перейдете к строке.
                                                                            • 0
                                                                              В общем виде насколько я знаю — нет, для отдельных языков есть, посмотрите например вот этот плагин я его использую иногда для python и js, а вообще он поддерживает около 5 языков. Дополнительной плюшкой плагина идет умный автокомплит, который умеет выдавать все методы модуля\класса, в том числе и системных.
                                                                              Правда у него есть минус — он тормозил в последней версии, что я использовал, но разработчики клялись, что все поправили и он летает, все недоходят руки попробовать.
                                                                          • 0
                                                                            Подскажите, как всем этим пользоваться, работая, например, в студии? Как же интеллисенс?
                                                                            • 0
                                                                              Интеллисенс? Для некоторых языков актуально (C#, Java, C++), но для Python, Ruby, JavaScript и, возможно, php, можно без него обходится. Я когда с C# на Ruby перешел, то дикая ломка была по интеллисенс, однако через некоторое время привык и даже радуюсь, что без него могу жить, т.к. все в голове :)

                                                                              К тому же, для SL2 есть ZenCoding, да и собственный «тупой» автокомплит не такой уж и плохой. + всегда можно сделать свои сниппеты.
                                                                            • 0
                                                                              К соажлению, для Java/Scala subl не очень подходит — для первой геморрой с дебагом и запуском, для второго, неработающий порт от emacs'а
                                                                            • +2
                                                                              А есть хоть кто-то, кто перешёл на ST2 после длительного использования PhpStorm (или других продуктов JetBrains)?
                                                                              • 0
                                                                                Да, есть.
                                                                                Около года (это длительный срок?) использовал RubyMine.
                                                                                Полгода сижу на ST2, чем необычайно доволен.
                                                                                • +1
                                                                                  Два года на PyCharm, год с IDEA. Сейчас пол года использую их 50/50 с Sublime. Не назвал бы это «перешел», но теперь выбираю под задачу то или другое. Sublime не IDE, а скорее навороченный очень приятный блокнот. Использую его для простых скриптов, быстрого редактирования, в случаях, когда нужно что-то большее (например, рефакторинг) иду в IDE.
                                                                                  • 0
                                                                                    Два года использую PhpStotm, но последние месяца 4 уже не могу без Sublime на втором мониторе. Уж очень большое эстетическое удовольствие получаю от интерфейса). Когда верстаю или работаю с небольшим количеством файлов, выбираю sublime, если же нужно «попрыгать» по проекту — переключаюсь в storm.
                                                                                  • +22
                                                                                    Кстати про карту кода, нашел такое применение, и код делится на секции и на карте видно:
                                                                                    • +2
                                                                                      О, полезно. Можно использовать TAAG для рисования больших букв, например patorjk.com/software/taag/#p=display&f=Banner3&t=Config%20%20DLG

                                                                                      Или уже плагин есть?
                                                                                    • +8
                                                                                      круто было бы если редактор сам отрисовывал бы секции на карте кода, если они определены в комментариях.
                                                                                      Что то типо
                                                                                      /**
                                                                                        * @codemap start "Confirm Dialog"
                                                                                        */
                                                                                      

                                                                                      /**
                                                                                        * @codemap end "Confirm Dialog"
                                                                                        */
                                                                                      
                                                                                    • +2
                                                                                      www.shortcutfoo.com/ — из поста habrahabr.ru/post/147907/
                                                                                      Тренажёр клавиатурных сочетаний, в том числе и для Sublime.

                                                                                      Сам пользуюсь примерно месяц как. Пересел с Notepad++. Подкупила цветовая раскладка, и возможность погрузиться в код полностью нажатием F11 с убранным меню сверху, чтобы ничего не мешало.

                                                                                      Под саундтрек Oophoi — ой как удобно и хорошо писать код… Рекомендую!
                                                                                      • +1
                                                                                        Вы так говорите, как будто в нотпаде нельзя убрать верхнее меню.
                                                                                        F11, F12 в разных комбинациях позволяют выбрать удобный режим фулскрина
                                                                                      • 0
                                                                                        GotoTab — позволяет переключать вкладки по нажатию Ctrl + [цифры]. Довольно удобная штука.
                                                                                        На мой взгляд зря. ST2 по умолчанию переключает группы на разделённом экране по Ctrl+цифра, и вкладки по Alt+цифра. Как и всё остальное, эти сочетания клавиш настраиваются.
                                                                                        • +5
                                                                                          Автор не упомянул об одном их лучших плагинов для скоростного набора кода — ZenCoding. Пол Айриш прекрасно продемонстрировал возможности этого плагина.
                                                                                          • +1
                                                                                            Ну неудобен он в этой программе, хоть убейте.
                                                                                            Поэтому, по-прежнему стоит komodo edit.
                                                                                            • +1
                                                                                              Чем неудобен? Набираешь строку (селектор), нажимаешь Tab и бам! Красивый HTML код готов. То же самое и с CSS. Изумительный плагин! имхо
                                                                                              • +2
                                                                                                У меня он в отдельной строке просил вбивать что мне надо, а в комоде просто в коде можно нажать комбинацию клавиш и развернуть зенкод. Если тут так же (переделали), беру слова обратно и перехожу.
                                                                                                • 0
                                                                                                  С плагином для ST2 так было всегда. Есть два режима ввода аббревиатур: просто вводом аббревиатуры в редакторе и разворачивание по клавише Tab, либо вводом в специальной панели. Последнее является своего рода «killer feature», которая позволяет видеть результат сразу во время набора, а не разворачивать и смотреть, соответствует результат ожиданиям.
                                                                                                  • 0
                                                                                                    И я согласен, эта киллер фича работает. Мне кажется, она главнее другого варианта, потому что таб, все-таки, весьма полезная и облюбованная другими плагинами кнопка.
                                                                                                    • 0
                                                                                                      Тут каждый сам выбирает, что ему удобнее использовать :) Мне, например, удобнее разворачивать по табу. А в новой версии ZC разворачивание аббревиатур (вернее, само действие Expand Abbreviation) будет дополняться всякими контекстными плюшками, вроде преобразования короткой записи CSS-градиентов в полноценный кросс-браузерный набор правил.
                                                                                                      • 0
                                                                                                        Мне лень держать открытым 6й мануал — изучаю плагин исключительно методом тыка :)
                                                                                            • +1
                                                                                              Я пробовал его подключать к Notepad++ и вскоре выкосил с матюками. Дело в том, что он делал кучу глобальных клавиатурных шоткатов, которые забивали собой аналогичные сочетания в других программах.
                                                                                              И вот жму я привычную комбинацию в ФШ — а ничего не происходит. Жму ещё и ещё — ноль на массу. Ничего не понимаю… а в это время в фоновом окне NP++ эти же нажатия удаляют целые абзацы!
                                                                                              Двойной убыток: и в ФШ нормально работать невозможно, и код в постоянной опасности, что-то стереть или покорежить.

                                                                                              Тут так же?
                                                                                              • +2
                                                                                                С N++ проблема не в самом Zen Coding, а в плагине, через который он работает: NppScripting. Поэтому всем пользователям N++ я рекомендую использовать Python-версию плагина, где таких проблем быть не должно: sourceforge.net/projects/npppythonscript/files/
                                                                                            • +6
                                                                                              >>Установить новую позицию курсора можно через ctrl + left_mouse_click. Или ctrl + left_double\_triple click (выделит слово\абзац целиком).

                                                                                              Т.к. мультивыделение является «киллер-фичей» на мой взгляд, то стоило расписать и другие более удобные способы сделать его без мыши:
                                                                                              ctrl+shift+l — Создать курсор на каждой строке выделенного фрагмента
                                                                                              alt+F3 — Найти все фрагменты идентичные выбранным и создать на них курсор
                                                                                              ctrl+D — Найти следующий фрагмент идентичный выбранному и добавить туда курсор
                                                                                              ctrl+K+D — Убирает курсор с последнего фрагмента найденного по ctrl+D и ищет следующий
                                                                                              ctrl+alt+up — Добавить курсор на строке выше
                                                                                              ctrl+alt+down — Добавить курсор на строке ниже
                                                                                              • +1
                                                                                                А есть ли тут профессиональные Ruby on Rails программисты, пользующиеся этим редактором?
                                                                                                Какие плагины используете?
                                                                                                • +4
                                                                                                  Есть.
                                                                                                  Примерно такой набор
                                                                                                  Twitter Bootstrap Snippets
                                                                                                  TrailingSpaces
                                                                                                  Simple Rails Navigator
                                                                                                  SideBarEnhancements
                                                                                                  CoffeeScript
                                                                                                  DetectSyntax
                                                                                                  Git
                                                                                                  Theme — Soda
                                                                                                  SCSS
                                                                                                  RubyTest
                                                                                                  LESS
                                                                                                  Rails
                                                                                                  CSS
                                                                                                  RSpec
                                                                                                  Guard
                                                                                                  Markdown Preview
                                                                                                  Gist
                                                                                                  Rake
                                                                                                  jQuery
                                                                                                  BeautifyRuby
                                                                                                  Gitignore
                                                                                                  Ruby 1.9 Hash Converter
                                                                                                  CTags
                                                                                                  Haml

                                                                                                  Вместе с гардами, запущенными в соседствующей консоли, отвлекаться от написания кода практически не приходится.
                                                                                                  • 0
                                                                                                    Огромное спасибо! Половины и не было даже…
                                                                                                    • 0
                                                                                                      Да завсегда пожалуйста.
                                                                                                      Там, правда, часть не совсем чтобы рельсовых затесалась, но, надеюсь, не помешают.
                                                                                                • +1
                                                                                                  Одно бесит: если делаешь поиск-замену «FoObAr» на «qwerty» в результате получается «QwErTy». А ещё навязчивое напоминание об обновлении при каждом запуске — так и не нашёл где его отключить.
                                                                                                  • +4
                                                                                                    Выключите «Preserve Case» в поиске-замене. А напоминание об обновлении отключается обновлением.
                                                                                                    • +3
                                                                                                      Согласен с StrangeAttractor-ом по поводу напоминания. У меня всё обновляется централизовано. И если в ppa пакет ещё не обновился (а так может продолжаться дня два), то зачем мне наблюдать эти сообщения? А собирать пакеты вручную каждые 5-10 дней явно лишнее.
                                                                                                  • +2
                                                                                                    trailing space это не лидирующие пробелы, а хвостовые.
                                                                                                    • 0
                                                                                                      А кто подскажет, как мне замапить некоторые расширения/имена файлов (а ля Podfile) на конкретный синтаксис (Ruby)?
                                                                                                      • 0
                                                                                                        Откройте Data\Packages\Ruby\Ruby.tmLanguage, там почти в самом начале в секции fileTypes описаны расширения, которые будут ассоциированы с руби, добавьте нужные