Редактор кода sublime text: Sublime Text — A sophisticated text editor for code, markup and prose – Download — Sublime Text

Содержание

Sublime Text 3 - удобный редактор кода для веб-разработчиков



Почему Sublime Text 3

В своей работе я использовал много редакторов кода, как простых, начиная от консольного редактора nano в Linux, заканчивая тяжеловесной, но очень хорошей IDE - IntelliJ IDEA от компании JetBrains, но именно Sublime Text заставил обратить на себя внимание и теперь в разработке веб-проектов в основном использую его и вот почему

 

 

1. Скорость работы

Sublime Text 3 действительно работает очень быстро даже на старом железе

 

2. Кроссплатформенность

Редактор Sublime Text работает в операционных системах Linix, Windows, Mac OS

 

3. Большое количество плагинов для различных задач

Плагины разрабатываются для Sublime Text каждый день, начиная от красивейших тем, заканчивая плагинами для Bootstrup

 

Установка Sublime Text 3 в Windows

Для того, чтобы установить Sublime Text 3, скачайте exe файл с официального сайта редактора.

Доступны версии для Linux, MacOS и Windows 32 и 64 битной версии. После скачивания, запустите exe файл Sublime Text 3 и следуйте инструкциям установки.

 

 

Настройка Sublime Text 3

Одна из особенностей Sublime Text 3 - это большое количество плагинов. Сегодня мы настроим несколько полезных плагинов для веб-разработчиков с помощью удобного менеджера пакетов: Package Control.

 

Установка плагина Package Control

Плагин Package Сontrol позволяет устанавливать дополнения к Sublime Text 3 легким способом, а также включать и выключать дополнения и обновлять их.

Для того, чтобы установить Package Control, пройдите по ссылке: https://packagecontrol.io/installation и скопируйте python код с сайта и в Sublime Text 3 нажмите сочетании клавиш ctrl+` или View > Show Console, затем вставьте скопированный код и нажмите Enter. Немного подождите и вам выдет окно-предупреждение, что нужно перезапустить редактор Sublime Text 3 для применения изменений.

Нажмите OK и закройте редактор, а затем опять откройте. Если вы все сделали правильно, тогда Package Control вы успешно установили.

Давайте попробуем установить красивую тему к Sublime Text через Package Control.

 

Установка новой темы из Package Control

 

 

Установка дополнений к редактору Sublime Text 3 через Package Control очень простая. Для того, чтобы открыть Package Control и установить новое дополнение для Sublime Text 3, нажмите Preferences - Package Control затем введите install (у вас должно сработать автодополнение), затем нажмите enter и введите название дополнения, в нашем случае это будет красивая тема под названием: spacegray.

 

 

После того, как вы установили новую тему, она станет доступна через меню: Preferences - Color Scheme - Theme Spacegray.

 

 

После этого у вас должна измениться цветовая схема. Но для того, чтобы применить полностью тему Spacegray, вам нужно зайти: Preferences - Settings User и вставить строки:

{
    "theme": "Spacegray.sublime-theme",
    "color_scheme": "Packages/Theme - Spacegray/base16-ocean.dark.tmTheme"
}

После этого перезапустите редактор Sublime Text 3, если тема применится некорректно.

 

Установка плагина Emmet

Плагин Emmet очень полезное дополнение, которое позволяет значительно ускорить процесс разработки сайта, в частности процесс верстки страниц.

Устанавливается легким способом, через Package Contorl:  Preferences - Package Control затем введите install (у вас должно сработать автодополнение), затем нажмите enter и введите Emmet, далее нажмите Enter.

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

 

Например, с помощью Emmet, мы создать шаблон div элемента с классом нажатием всего двух клавиш: точка(.) и tab:

 

Аналогично, для того чтобы создать шаблон элемента div, но не с классом, а id, введите # и tab и вы увидите:

 

В данной статье мы не будем рассматривать все возможности плагина Emmet, так как для него мы посвятим отдельную статью, а пока оставим вам ссылку на официальную документацию к плагину Emmet - http://docs.emmet.io/

 

Полезные плагины Sublime Text 3

В Sublime Text много полезных плагинов для работы с кодом, для работы с GIT,  с терминалом, плагин для синхронизации настроек между редакторами и прочие.

 

Sublimall

Плагин Sublimall позволяет синхронизировать настройки одного редактора Sublime Text, между редакторами Sublime Text установленных на разных компьютерах.

 

 

DocBlockr

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

 

 

ColorPicker

Плагин ColorPicker выполняет функцию color picker(выбор цвета). Это очень удобно, когда вы хотите подобрать цвет или посмотреть цвет в css свойствах элемента

 

 

Sublime SFTP

Sublime SFTP позволят подключаться к SSH серверу прямо из Sublime Text. Если вы ранее использовали для подключения к сайту FTP клиент, например FileZilla, теперь вы можете подключиться напрямую.

 

Плагинов для Sublime Text написано огромное количество и они покрывают те задачи по удобству написания кода, с которыми сталкивается разработчик. 

 

Выводы о Sublime Text 3

Редактор кода Sublime Text 3 имеет большие возможности и постоянно развивается. К нему пишут большое количество дополнений и цветовых тем. За счет своей кросплатформленности, вы можете смело использовать его в популярхных операционных системах.

А если вы научитесь пользоваться дополнениями, описанные в этой статье и дополнениями которые вы найдете в свободном доступе, код будет писаться быстрее.

В слудующих статьях мы сделаем детальный обзор новых полезных плагинов и цветовых схем к Sublime Text. Вступайте в нашу группу VK и не пропустите новые статьи.





Читайте также




Все материалы с сайта wh-db.com и ru.wh-db.com защищены авторским правом. Копирование, публикация, продажа и распространение материала строго запрещены.

Sublime Text — прекрасный текстовый редактор для веб-разработчиков / Dimox.name

Пишу этот пост под большим впечатлением. Не прошло и недели, как я узнал про замечательный текстовый редактор под названием Sublime Text. Если описать одним словом тот эффект, который он на меня произвел, то это просто: «Вау!«.

Думаю, что настало время сменить старый добрый Rapid PHP, которым я пользовался почти 4 года. Вообще-то я хотел перейти на Notepad++, но, узнав про Sublime Text, оказалось, что последний гораздо лучше.

Что мне понравилось больше всего

В Sublime Text большое количество полезных возможностей. Но вот что я хотел бы выделить особенно:

  • Приятный, легкий, минималистичный интерфейс.
  • Очень гибко настраивается.
  • Множественное выделение. Вот это просто архиполезнейшая вещь, которую я встречаю впервые. Как она работает — зажимаешь Ctrl и ставишь в нужные места множество курсоров или выделяешь разные участки текста. Теперь при вводе с клавиатуры текст набирается одновременно во всех этих местах.

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

  • Возможность создания любых сниппетов и вставки их хоть по горячим клавишами, хоть по буквенным сокращениям (в стиле Zen Coding).
  • Возможность назначения горячих клавиш абсолютно на любое действие.
  • В сниппетах можно задать, где будет находится курсор при вставке, задать плейсхолдеры и переключение в нужные участки сниппета Tab’ом.
  • Наличие миникарты кода для удобного перемещения.
  • Все мои личные настройки хранятся в отдельной папке.
  • Умное комментирование/раскомментирование кода по горячим клавишам.
  • Возможность отображения скрытых символов (пробелы, табы) только при выделении кода.
  • Постоянно растущее сообщество пользователей, которые пишут плагины под любые нужды.

В общем, по функционалу Sublime Text легко заменяет и Rapid PHP, и Notepad++, и даже превосходит их.

Чего не хватает

  • Графического интерфейса для создания цветовых схем. Редактировать xml-файл, чтобы оформить под себя — это крайне неудобно и нудно, отнимает кучу времени.
  • Вставки изображения через проводник Windows. Т.е. указываешь изображение, и программа автоматически подставляет в тег <img> путь к нему, а также ширину и высоту (вот бы кто плагин написал).
  • Добавления слов в словарь для проверки орфографии.
  • Кликабельности ссылок.

Недостатки

  • Время загрузки программы. Если сравнивать Sublime Text, Notepad++ и Rapid PHP, то Notepad++ открывается просто мгновенно, Sublime Text примерно за 1 секунду, а Rapid PHP секунды за 3.
  • Платность. Стоит 59 баксов. С одной стороны не мало для текстового редактора, с другой — она того стоит. Хотя можно пользоваться и вечным триалом (периодически при сохранении файлов выскакивает предложение купить).

Других минусов я пока не смог найти. По сути эти недостатки — мелочь, которая с лихвой компенсируется плюсами программы.

P.S. Кстати, Sublime Text — это мультиплатформенный аналог редактора TextMate

на Mac OS X. Есть версии для Windows, Linux и OS X. Поддерживает цветовые схемы от TextMate.

создаём свободный клон редактора кода Sublime Text — «Хакер»

Началась работа над Lime Text — мощным и элегантным редактором кода, бэкенд которого написан на языке программирования Go. Разработчики запустили этот проект, чтобы сделать достойного наследника редактору кода Sublime Text, который пользуется заслуженным признанием у многих программистов. В отличие от предшественника, Lime Text будет на 100% свободной программой с открытым исходным кодом.

Sublime Text — быстрый кроссплатформенный редактор исходных текстов программ. Поддерживает плагины на языке программирования Python. Первая версия вышла в январе 2008 года под Windows и сразу стала популярной среди профессиональных разработчиков благодаря многочисленным удобным функциям, таким как контрастный интерфейс, визуальные темы, автосохранение, поиск по мере набора, автодополнение, проверка синтаксиса, автоматизация с помощью макросов, большой набор команд редактирования, выделение столбцов, встроенный менеджер пакетов, перемещение между файлами и внутри их с помощью нечёткого поиска и т.д.

Sublime Text поддерживает большое количество языков программирования и имеет возможность подсветки синтаксиса для C, C++, C#, CSS, D, Dylan, Erlang, HTML, Groovy, Haskell, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, MATLAB, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL и XML. В дополнение к тем языкам программирования, которые включены в первоначальный пакет, пользователи имеют возможность загружать дополнения для поддержки дополнительных языков.

Lime Text получит несколько фронтендов: Qt (QML), HTML/JavaScript и командная строка. Но этим не ограничатся: сейчас в стадии обсуждения ещё несколько интерфейсов, в том числе Dart и Skia. То есть каждый разработчик сможет выбрать такой интерфейс, который наилучшим образом подходит именно ему.

Lime Text должен быть совместим с визуальными темами оформления Textmate, определениями синтаксиса и сниппетами, которые использует Sublime Text. Совместимость реализуют и на других уровнях, например, используют тот же API для питоновских расширений. Многое из этого уже реализовано на данный момент.

Бэкенд написан на Go, и всех желающих приглашают поучаствовать в исправлении выявленных недостатков. За отдельные патчи в Lime Text выплачивают вознаграждения.

Идеи для Sublime от CudaText / Habr

С 2012 года использую для просмотра и изменения почти всех текстовых файлов, логов и программных кодов на языках VFP/JS/Python/XML/HTML редакторы, созданные Алексеем Торгашиным: сначала это был SynWrite, теперь его потомок CudaText. Осознанно выбрал именно его редактор из списка опробованных, в который входили, в том числе, AkelPad, Notepad++ и Sublime Text. Решающей оказалась отзывчивость техподдержки — Алексей принимал от пользователей огромное число пожеланий/претензий и быстро их реализовывал. Поясню. Число пожеланий/претензий было все годы примерно равномерное, а после перехода три года назад на ГитХаб стало измеримым и оценивается мной как 400 пожеланий/год и 100 багов/год. Приятно удивляет, что расширение функционала по просьбам трудящихся не сказывалось на надежности редактора в целом. А когда ресурс устойчивого развития SynWrite был исчерпан, возник CudaText.


Передаю слово Алексею.

У меня с Алексеем случаются беседы на разнообразные темы. Недавно он перечислил "чего в Sublime не хватает". Мне это показалось интересным, и мы договорились представить эти идеи на Хабре. Дальше будет изложение тезисов от Алексея в моей редактуре.

Потратив несколько лет на создание своей программы, по другому смотришь на результаты конкурентов. Замечаешь в них не только удачные черты (их либо уже применил, либо хочешь применить), но и недостатки. Покажу, что можно было бы улучшить в Sublime Text (далее Sublime), если сравнивать его с моим CudaText (далее Cuda). При этом подчеркиваю, что мой редактор возник, когда Sublime уже был широко распространенным, многие его идеи были базовыми для Cuda:


  • Текстовые конфиг-файлы
  • Перекрытие настроек
  • Мульти-каретки
  • Плагины на Питоне
  • Палитра всех команд

Sublime жестко навязывает текстово-командный стиль работы.
Например.


  • Нет диалогов для настройки — есть только json-файлы (их много).
  • Нет дополнительных контролов в диалоге ПоискПоФайлам — вместо них “язык” для заполнения текстовых полей.

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

Cuda старается быть более доступным инструментом. Это оказывается возможным, так как он создается в среде Lazarus, предоставляющей богатый GUI арсенал и переносимость между Win/Linux/Mac. В результате гибкость json-настроек в Cuda сочетается с диалог-плагинами, например, ПоискПоФайлам (есть хабр-обзор), редактор настроек и прочими.
Попробую высказать несколько идей, как можно улучшить Sublime. Конечно, это лишь мое частное мнение.


Тулбары

В Sublime нет тулбаров. Так проявляется его текстово-командный стиль. Видимо, предполагается, что полезное место для редактируемого кода важнее. Можно все команды вызывать либо из меню, либо из Палитры по именам, либо через хоткеи. Есть явный недостаток у такого подхода — нужно заранее знать либо имя команды, либо ее хоткей. А ведь существование нужной команды и ее имя далеко не всегда очевидны.
Настраиваемый, в том числе отключаемый, тулбар — одна из деталей, которая снижает порог использования.

У Cuda есть горизонтальный настраиваемый тулбар для вызова команд и вертикальный сайдбар для переключения панелей: Дерево, Проект, Консоль. За настройку тулбара отвечает API, то есть она выполняется через плагин. В сайдбаре могут появляться новые кнопки, если плагины добавляют новые панели.

Добавление тулбара в Sublime не нарушило бы никаких прежних его технологий.


Статус-бар

В Sublime статус-бар бедный.

(1) Переключатель панелей Консоль/Поиск/Замена/ПоФайлам
(2) Сообщение
(3) Кодировка
(4) Тип EOL
(5) Настройка Tab
(6) Синтаксис
Из этих шести полей только два (Кодировка и EOL) можно спрятать через конфиг, и в поле Сообщение плагины могут добавлять/удалять пары ключ=значение. Ни спрятать, ни переставить, ни настроить остальные поля нельзя. Особенно странно, что важная информация о каретке(ах)/выделении(ях) попадает внутрь поля Сообщение, где перемешивается с текстами от команд.

В Cuda пользователь может в user.json для полей статус-бара указать их последовательность, ширину и выравнивание:

"ui_statusbar_panels": "caret,L,250|msg,L,0|lexer,L,70|tabsize,L,70"

а заполнение поля caret(информация о каретках/выделениях), можно настроить раздельно, применяя макроподстановки. Например, так

"ui_statusbar_no_sel": "r={y}/{count} c={xx}",
"ui_statusbar_carets": "carets={carets} top/bot={y}/{y2}",
"ui_statusbar_col_sel":"r={y}/{count} c={xx} s=[{sel} x {cols}]",

В результате таких настроек Cuda будет отображать в статус-баре


  • Если одна каретка:
  • Если четыре каретки:
  • Если вертикальное выделение:

Еще Cuda позволяет настраивать, как долго нужно показывать текст в поле Сообщение.


Дерево кода

Стремление Sublime все представлять в текстовом виде понятно. Однако, отказ от панели Дерево, которая есть во всех IDE и продвинутых текстовых редакторах, очень болезненный. Можно применять «текстовое Дерево», размещенное в обычной вкладке (например, с плагином Outline), но оно слабо интегрировано с интерфейсом Sublime, и полноценной заменой не является.

В Cuda есть панель Code tree для отображения синтаксических элементов активного файла: функции/классов/полей для программных языков, тегов/ключей для разметочных языков.

Интеграция:


  • Отображение синхронное, то есть дерево отображает состояние кода сразу после его изменения (с настраиваемой задержкой).
  • Выделенный узел дерева синхронизирован с положением каретки в коде.
  • Узлы дерева используются для выделения блоков, перемещения каретки и других операций.

Кроме того API Cuda позволяет создать новую панель с деревом и наполнить ее. Плагин Project Manager как раз это и делает.


Папки с настройками и плагинами

Для пользователя, не глубоко погрузившегося в мануалы Sublime, ситуация с размещением настроек/пакетов/плагинов по папкам выглядит запутанной. Ошарашивает уже первый шаг внутри свежеустановленного редактора: по команде меню Preferences -- Settings открываются два файла, один из которых (умолчательные настройки) в титуле редактора виден как (в Win)
Sublime Text 3/Packages/Default/Preferences.sublime-settings
но ни такого файла, ни такой папки на диске нет. В целом, логика в таком фокусе угадывается. Умолчательные настройки должны быть зашиты в код редактора, а будут они продублированы в каком-нибудь файле или нет — это на усмотрение разработчика. Sublime притворяется, что они в файле.

В Cuda умолчательные настройки тоже зашиты, но при этом в сборке есть реальный файл
settings_default\default.json
в котором они продублированы и прокомментированы. Наличие такого файла создает удобство не только для пользователей, но и для плагинов. Например, редактор настроек, извлекает из этого файла и сам список опций, и комментарии к ним, и разметку для распределения опций по дереву.

С пакетами в Sublime случаются аналогичные заморочки — ищешь их в Packages и не находишь.

Хотя Cuda не обладает такой мощной базой дополнительных пакетов, как Sublime, но логика размещения у Cuda прозрачная. Например, для плагинов есть одна папка py, в которой видны все — и стандартные, и доустановленные. Для тем есть папка data/themes, для сниппетов — data/snippets, для лексеров — data/lexlib.


Package Control

Странная ситуация с плагином Package Control. С одной стороны, из коробки Sublime приходит без этого плагина. С другой, почти ничего серьезного без него сделать нельзя — без дополнений редактор весьма куцый. Даже размещение плагина в меню Preferences, а не в Tools--Packages указывает на его особый статус. Видимо, какие-то “авторские права” мешают включить этот плагин в сборку Sublime.

В Cuda несколько плагинов (сейчас 10), в том числе Addons Manager, входят в дистрибутив.


Плавающие панели

У Sublime монолитная компоновка окна, то есть Консоль и группы вкладок располагаются вместе. Можно запустить несколько экземпляров, но в каждом из них всегда будут вкладки и, может быть, Консоль.

В Cuda есть настройки и команды для отображения Консоли в отдельном окне. Это позволяет удобно растянуть ее без ущерба для высоты основного текста и, например, поместить на второй монитор. Кроме того, можно отделить и панель с Деревом, чтобы не ограничивать ширину основного текста.

Кстати, пользователи Atom (или VS Code) хотели бы иметь плавающие панели, но разработчики отказали, сославшись на ограничения в Electron. Так что это могло бы стать преимуществом Sublime над прямыми конкурентами.


Настроечный плагин

У Sublime более ста настроек ядра (107 в версии 3.1.1) и шесть дополнительных перекрывающихся уровней для размещения измененных значений:
(1) Packages/Default/Preferences (<platform>).sublime-settings
(2) Packages/User/Preferences.sublime-settings
(3) <Project Settings>
(4) Packages/<syntax>/<syntax>.sublime-settings
(5) Packages/User/<syntax>.sublime-settings
(6) <Buffer Specific Settings>
Легко представить ситуацию, когда чисто ручное сопровождение даже малой части от 700 значений (100 ключей на 7 уровнях) становится проблемой.

В Cuda настроек ядра почти 300, а дополнительных уровней для их перекрытия три:
(1) settings/user.json
(2) settings/lexer <syntax>.json
(3) <File Settings>
Проблема та же – слишком много значений (до 300*4) нужно учитывать. В помощь пользователям есть плагин, отображающий все настройки на всех уровнях в виде таблицы, упрощающий поиск и редактирование.

Обратите внимание на колонку Section — настройки приписаны к узлам дерева. Это дает дополнительные сортировки и фильтры. Разметка для построения этого дерева включена в комментарии к настройкам в файле settings_default\default.json. Например, комментарий

// [UI/Listbox]`

припишет следующие за ним опции к узлу UI/Listbox. Дерево целиком тоже можно увидеть

Для Sublime аналогичный диалог вполне возможен:


  • Имя и семь уровней перекрытия — это всего лишь восемь колонок в таблице.
  • Форму и контролы можно взять из Tk или более продвинутой GUI-библиотеки Питона.
  • Изменение опций может приводить к изменениям в файлах и их перезагрузке при сохранении.

Мелочи

Есть несколько незначительных претензий, которым, конечно, правильное место не здесь, а в форуме техподдержки Sublime. Пусть будут для полноты.


  1. Не работают PgDn/PgUp в диалогах-списках, например, в Палитре Команд.
  2. Часто нужно вставить какой-нибудь хитрый символ, например, стрелку или дробь. Не хватает инструмента для просмотра/выбора всех юникод-символов. В Cuda такой инструмент есть в виде диалога Char map
  3. Нет возможности задать индивидуальную раскраску ярлыков. Когда открыто много файлов, часто возникает желание пометить цветом ярлыки некоторых из них. В Cuda команда Set tab color... есть в локальном меню над ярлыком. Настроенные таким образом цвета сохраняется в сессии.

Заключение

Как же легко раздавать советы!

Но перечисленные выше соображения, на мой взгляд, не лишены пользы. Если в следующей версии Sublime Text что-то пригодится, будет хорошо. Кстати, может быть кто-то переведет и передаст идеи Скиннеру (Jon Skinner).

Настройка Sublime Text 3 для работы с VHDL файлами / Habr

Работа с VHDL в Sublime Text 3


Редактор Sublime Text существенно экономит время при работе с vhdl и verilog файлами. Для тех, кто не работал с редакторами типа Sublime Text, Notepad++ и т.п. опишу основные полезные функции данных редакторов:
  • множественное выделение/редактирование строк кода (нажатие средней кнопки мыши или при зажатой клавише Ctrl)
  • установка меток (закладок) в коде, помогает ориентироваться в больших файлах. (Ctrl + F2 или через пункт меню Goto→ Bookmarks)
  • возможность разделения рабочей области на несколько окон (Alt + Shift + 2 или из меню View→ Layout)
  • открытие одного файла несколько раз (File→ New View into File)
  • комментирование выделенных строк кода (Ctrl + /)
  • поиск и замена (Ctrl + h)
  • поиск по всем открытым файлам (Ctrl+Shift+f)
  • вставка сниппетов (шаблонов кода) (написать ключевое слово + клавиша Tab)
  • написание и использование функций на языке python
  • возможность установки различных дополнений
  • гибкая настройка

Интеграция Sublime Text


Для начала состыкуем САПР для работы с ПЛИС и редактор Sublime.

Плагины


Различные плагины (packages) расширяют функциональность редактора. Packages можно
устанавливать как в онлайн так и оффлайн-режиме.

Для установки плагинов в офлайн-режиме нужно проделать нехитрые манипуляции:

  1. Скачиваем нужный плагин с GitHub
  2. Извлекаем из архива
  3. Переименовываем папку, например, «Sublime-HDL-master» в «Sublime HDL»
  4. Полученные папки копируем в папку Packages (расположение данной папки легко найти, выбрав в Sublime Text пункт меню Preferences → Browse Packages)

SyncViewScroll — плагин для синхронизации вертикальной и горизонтальной прокрутки при работе в нескольких окнах. Для работы плагина надо для каждого окна выбрать в меню View→ Sync Scroll.

Text Pastry – плагин для автоматической множественной нумерации. Очень помогает при работе с большим количеством нумерованных сигналов/портов.

Как работать с Text Pastry
  1. Выделяем нужные участки строк
  2. Вызываем меню Ctrl+Shift+P
  3. Ищем пункт “Text Pasty Command Line”
  4. В появившемся окне, расположенном в нижней части экрана, вводим:
    • 0 — нумерация от 0
    • \i(1,10) — нумерация от 1 с инкрементом 10
    • 1 end=4 — нумерация 1, 2, 3, 4, 1, 2, 3, 4 и т.д.
    • letters a-c upper — A, B, C, A, B, C, и т.д.
    • letters a-c upper x3 — A, A, A, B, B, B, C, C, C и т.д.
    • 1 x3 — 1, 1, 1, 2, 2, 2, 3, 3, 3, и т.д.
    • x y z — x, y, z, x, y, z, x, y, z, и т.д.



Sublime Verilog — поддержка синтаксиса языка Verilog

Verilog Gadget – набор функций и сниппетов для работы с Verilog файлами.

SmartVHDL — поддержка синтаксиса языка VHDL. Также при наведении на сигнал или порт в коде появится окно с подсказкой о типе (количество бит) данного сигнала/порта. При наведении на сигнал в контекстном меню появится пункт “Goto Definishion” — переход к месту объявления сигнала.

VHDL Mode – набор функций и сниппетов для работы с VHDL файлами. Основная часть функций запускается, например, сочетанием клавиш Atl+K, C, P, где C и P нажимаются поочередно. Основные функции:

  • Копирование данных портов (названия портов, типы данных)
  • Вставка данных портов как объявление сигналов
  • Вставка данных портов как объявление компонента
  • Генерация тестбенча по скопированным данным портов
  • Автоформатирование кода (выравнивание табуляции и т.п.)

Поддержка ucf файлов


По умолчанию редактор Sublime не у меет работать с ucf-файлами. Разметка ucf эквивалентна разметке языка tcl. Осталось только объяснить это редактору:
  • Создадим в папке Packages новый файл Tcl.sublime-settings
  • Заполним файл строкой
    {"extensions" : ["ucf"]}
  • Сохраним файл

Создание шаблонов кода (snippets)


Пусть нам надо вставить шаблон кода:
My_proc : Process(clk, rst, data_in) 
begin
  if(clk'event and clk = '1') then
    if(rst = '1') then    
  			
    else then -- rst = 0
        
    end if; -- data_in
  end if;--clk
end process My_proc;

Причем нам бы хотелось, чтобы после вставки текста по нажатию Tab курсор устанавливался на позиции My_proc, clk, rst, data_in, для быстрого изменения значений этих данных. Для этого создадим новый сниппет:Tools → Developer → New Snippet. Редактируем данные:
<snippet>
  <description>process rst</description>
  <content><![CDATA[
${1:<PROCESS_NAME>} : Process(${2:clk}, ${3:rst}, ${4:data_in}) 
begin
  if($2'event and $2 = '1') then
    if($3 = '1') then    
      ${5}	
    else then -- $3 = 0
      $0
    end if; -- $4
  end if;--$2
end process $1;
]]></content>
  <tabTrigger>procrst</tabTrigger>
  <scope>source.vhdl</scope>
</snippet> 

Сохраняем данный сниппет. Теперь при написании ключевого слова procrst в текущую позицию курсора будет вставлен наш шаблон.

Подробнее о создании шаблонов читайте в статье «Как создать сниппет?».

Написание собственных функций на языке python


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

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

Для парсинга данных файла VHDL воспользуемся функциями плагина Vhdl mode.

Примерный алгоритм наших действий:

  1. Получить данные о всех портах модуля
  2. Все порты типа «in» включить в шапку процесса
  3. Если есть порты с названием ce и/или rst, то добавить соответствующие условия if else в процесс
  4. За процессом вставить строки присвоения выходным портам значений внутренних сигналов (обычно такие сигналы называют также как и порт, добавляя приставку «s_» или "_net")

Для начала создадим новый сниппет:
<snippet>
  <tabTrigger>procclk</tabTrigger>
  <scope>source.vhdl</scope>
  <content><![CDATA[
${DATAINPORTS}

${OUTPORTS}
]]></content>
  <description>process clk</description>
</snippet>

Здесь ${DATAINPORTS} – метка, куда будет вставлено описание процесса,
${OUTPORTS} — метка, где будет присвоение внешним выходным портам значений внутренних сигналов.

Сохраним его под именем, например, test.sublime-snippet в папку VHDL Mode/Snippets.
Воспользуемся написанными функциями в папке VHDL Mode. Так как знания языка python у меня начальные, то будем модифицировать функции плагина, по аналогии с уже описанными в нем.

Создадим в файле vhdl_lang.py новые функции в классе Interface(), назовем их in_port и out_port:

Функции
def in_port(self):
  """
  Generate Process depending on the input ports
  """
  lines = []
  bus_index = ""       
  
  max_data = ""
  my_ports = ""
  is_clk = False
  is_ce = False
  is_rst = False
  if self.if_ports:            
      for port in self.if_ports:            
          if port.mode.lower() == 'in':
              if port.name.lower() == ('clk'):                       
                  is_clk = True
                  my_ports = port.name                        
              else: 
                  if port.name.lower() == ('ce'):
                      is_ce = True                           
                  elif port.name.lower() == ('rst'):
                      is_rst = True                                                   
                  my_ports = my_ports + ", " + port.name                
                
      lines.append("Process("+ my_ports +')' )
      lines.append("begin")
      if is_clk:            
          lines.append("  if(clk'event and clk = '1') then")
          lines.append("")
          if is_rst and is_ce:
              lines.append("if(rst = '1') then")
              lines.append("")
              lines.append("elsif (ce = '1') then")
              lines.append("")
              lines.append("end if; -- rst")
          elif is_rst:
              lines.append("if(rst = '1') then")
              lines.append("")
              lines.append("else -- working body ")
              lines.append("")
              lines.append("end if; -- rst")
          elif is_ce:
              lines.append("if (ce = '1') then")
              lines.append("")
              lines.append("end if; -- 
          lines.append("  end if;--clk")
      lines.append("end process;")
      # lines.append(str(testind
      indent_vhdl(lines, 1)
      return '\n'.join(lines)
  else:
      return None


def out_port(self):
  """
  Generate data after Process
  """
  lines = []
  if self.if_ports:            
      for port in self.if_ports:            
          if port.mode.lower() == 'out':
              lines.append("{} <= {}_net;".format(port.name, port.name))
      indent_vhdl(lines, 1)
      return '\n'.join(lines)
  else:
      return None 


Функция out_port вставляет за процессом строки, например:
data_out1
data_out2

Создадим в папке VHDL Mode новый файл, назовем его my_func.py, вставим текст:

import sublime
import sublime_plugin
from.import vhdl_interface as face

class PasteAsProcess(sublime_plugin.TextCommand):
    def run(self, edit):
        snippet_clk = "Packages/VHDL Mode/Snippets/test.sublime-snippet"
        in_port_str = face._interface.in_port()
        out_port_str = face._interface.out_port()

        self.view.run_command("insert_snippet",
            {
              "name"     : snippet_clk,
              "DATAINPORTS" : in_port_str,
              "OUTPORTS" : out_port_str
            })

        print('paste_as_process')

Осталось присвоить горячие клавиши. Так как наш класс называется PasteAsProcess, то команда должна называться paste_as_process (перед символами, кроме первого, написанными в верхнем регистре нужно поставить знак нижнего подчеркивания).

Идем Preferences → Key Bildings. Вставляем строку:

{"keys": ["alt+k", "p", "z"], "command": "paste_as_process",    "context": [{"key": "selector", "operand": "source.vhdl"}] },

Теперь для работы нам надо сначала скопировать значения портов vhdl файла сочетанием клавиш «alt+k», «p», «w» (по умолчанию). Затем вызвать нашу функцию клавишами «alt+k», «p», «z».

Вывод


Сниппеты и функции значительно упрощают работу с vhdl файлами.

Даже начальных знаний языка python достаточно для написания простых, но рабочих функций.

P.S.: Оставлю ссылку на папку с моими настройками. Для работы, надо заменить папку Sublime Text 3 по адресу: C:\Users\User\AppData\Roaming\

Мои сниппеты:

  • sint (Signal integer), sstd, svector — шаблоны описания сигналов соответствующего типа
  • ibuf, ibufds и т.д. — описание буферов
  • generichelp — подсказка пример, как правильно применить generic
  • teststd, testvector и т.д. — процессы для тестбенча с сответствующими типами данных
  • procclk, procce, procrst — процессы с сигналами clk, ce, rst
  • clk, net, inst — шаблоны для ucf файлов

Мои функции:
  • Cвязка Alt+K,C,P (Copy Ports), Alt+K,P,Z — вставка процесса описанного с этой статье
  • Cвязка Alt+K,C,P (Copy Ports), Alt+K,P,T (Paste Testbench) — переделал функцию плагина VHDL MODE, теперь генерируются тестовые процессы для всех входных сигналов

Почему настоящие мастера пишут всё в Sublime Text

Если вы начи­на­ли изу­чать про­грам­ми­ро­ва­ние, вам хоть раз кто-нибудь сове­то­вал попро­бо­вать спе­ци­аль­ный тек­сто­вый редак­тор для кода — напри­мер, Sublime Text. Но люди, кото­рые одна­жды вку­си­ли Sublime, начи­на­ют писать в нём всё под­ряд: про­грам­мы, пись­ма, спис­ки дел, рас­ска­зы и пове­сти — вооб­ще всё. И на то есть несколь­ко при­чин.

1. В нём невозможно случайно потерять работу

Попро­буй­те набрать в Sublime Text любой текст в новой вклад­ке, а потом слу­чай­но закрой­те всю про­грам­му. Она закро­ет­ся, мол­ча и мгно­вен­но, не спра­ши­вая о сохра­не­нии.

А теперь открой­те редак­тор зано­во. Весь ваш текст сохра­нит­ся. При­чём не толь­ко текст, но и раз­мер шриф­та, все откры­тые фай­лы, вклю­чён­ные пла­ги­ны и так далее. Sublime сохра­ня­ет своё состо­я­ние с каж­дым нажа­ти­ем кла­ви­ши, поэто­му поте­рять напи­сан­ный здесь текст мож­но толь­ко лишь в одном слу­чае: вы пря­мо ска­за­ли про­грам­ме «Не сохра­нять».

Сот­ни набран­ных стра­ниц по все­му миру спа­са­ет Sublime каж­дый день.

2. Он очень быстрый и нетребовательный

Sublime Text мол­ние­нос­но обра­ба­ты­ва­ет доку­мен­ты любо­го объ­ё­ма. Там, где обыч­но­му тек­сто­во­му редак­то­ру нуж­но 3 секун­ды, Sublime успе­ва­ет всё сде­лать за 0,25 секун­ды.

Он спо­кой­но дер­жит у себя во вклад­ках десят­ки доку­мен­тов, и вы даже не буде­те это­го заме­чать. Одна­жды, закры­вая вклад­ки, вы наткнё­тесь на спи­сок дел годо­вой дав­но­сти, набро­сок вашей сва­деб­ной клят­вы, пер­вое любов­ное пись­мо буду­щей супру­ге (или супру­гу), ваши пер­вые сло­ва, ска­зан­ные в дет­стве. Панель вкла­док Sublime — это как бес­ко­неч­но напол­ня­ю­щий­ся пакет паке­тов. Фай­лы там могут лежать года­ми и не засо­рять память.

3. Поиск и мультивыбор

Допу­стим, вы напи­са­ли огром­ное любов­ное пись­мо, в кото­ром 30 раз встре­ча­ет­ся сло­во «Оль­га». А потом жизнь сло­жи­лась так, что вам нуж­но изме­нить всех «Ольг» на «Ксюш». Откры­ва­е­те Sublime Text, нажи­ма­е­те «Поиск» и нахо­ди­те разом всех «Ольг». Пише­те нуж­ное имя, и дело сде­ла­но.

Пыт­ли­вый чита­тель ска­жет: а чем это луч­ше, чем обыч­ная авто­за­ме­на? А хит­рость в том, что Sublime Text не толь­ко нахо­дит все эле­мен­ты в тек­сте, но и поз­во­ля­ет их одно­вре­мен­но выде­лить во мно­гих местах. Пред­ставь­те, что у вас появ­ля­ет­ся кур­сор воз­ле каж­дой «Оль­ги» в тек­сте. И вы може­те дви­гать кур­со­ром, уда­лять какие-то бук­вы, допи­сы­вать какие-то сло­ва, и всё это будет про­ис­хо­дить одно­вре­мен­но, сра­зу и вез­де. Это гораз­до удоб­нее, быст­рее и надёж­нее, чем поиск и авто­за­ме­на.

Отдель­ный низ­кий поклон раз­ра­бот­чи­ку Sublime за режим поис­ка по регу­ляр­ным выра­же­ни­ям. Но это тема для ещё одно­го поста.

4. Плагины

У Sublime сот­ни пла­ги­нов. Хоро­ших, мощ­ных, о чём угод­но. Мож­но под­клю­чить модуль, кото­рый будет закан­чи­вать за вас кус­ки кода. Мож­но научить его загру­жать фай­лы сра­зу на сер­вер. Поме­нять внеш­ний вид. Испра­вить опе­чат­ки в напи­сан­ной про­грам­ме. При­че­сать код, что­бы выгля­дел про­фес­си­о­наль­но. Гото­вые кус­ки кода под раз­ные зада­чи. Соне­ты Шекс­пи­ра. Всё что хоти­те.

5. Все интересуются

Когда вы пише­те в Sublime Text, вы выгля­ди­те кру­то. Когда вы пише­те код, вы выгля­ди­те как бог.

Всё проходит

Любовь к Sublime Text при­хо­дит, но, как и всё в жиз­ни, может уйти. Опыт­ные про­грам­ми­сты посте­пен­но пере­клю­ча­ют­ся на спе­ци­а­ли­зи­ро­ван­ные сре­ды раз­ра­бот­ки — WebStorm, VSCode и дру­гие. А когда исполь­зу­ешь такую сре­ду, воз­мож­но­сти Sublime уже не нуж­ны, и начи­на­ешь вести замет­ки в отдель­ных про­грамм­ках.

Но пусть у каж­до­го в жиз­ни будет медо­вый месяц Sublime. Совет да любовь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *