Sublime text 3

Как установить плагин Emmet в Sublime Text

Плагин Emmet позволяет писать код быстрее, благодаря сочетанием клавиш. Например базовую HTML5-разметку вы можете создать сочетанием клавиш ! + tab. Удобно правда?

Для установки Emmet перейдите в Preferences — Package Control и в открывшемся окне напечатайте install package, затем введите слово emmet и выберите его для запуска процесса установки. Иногда требуется перезагрузка Sublime Text 3 после установки новых дополнений.

Важно: плагин Emmet в Sublime Text 3 не будет генерировать код, если вы ранее не сохранили файл, например, как index.html

Более подробную работу с Emmet и горячие клавиши мы рассматриваем в курсе HTML/CSS и других курсах Профессия веб-программист. Пройдя данные курсы, вы получите знания основ программирования и создадите на практике свой первый профессиональный сайт о кино.

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

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

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

Несколько часто используемых в Sublime Text 3 горячих клавиш:

Alt+Shift+f — выравнивание кода (reindent);Ctrl+f Alt+enter — выделить все найденные слова;Super+Alt+. — переход к выбранному классу в CSS в Sublime Text 3;Ctrl+/ — закомментировать / раскомментировать HTML;Ctrl+Shift + D — дублировать строку или выделение;Ctrl+K+U — преобразовать в прописные буквы (выделен фрагмент текста);Ctrl+K+L — преобразовать в строчные буквы (выделен фрагмент текста);Shift+Ctrl+g — обернуть выделение в div;Ctrl+ — передвигаем выделенный код влево или вправо;Ctrl+Shift+p — открываем меню команд;Ctrl+` — открывает в Sublime Text консоль.

Поделиться

Устанавливаем Sublime Text 3

Загружаем и устанавливаем через терминал

Для начала открываем командную строку. Это можно сделать, кликнув по соответствующему ярлыку или одновременно нажав кнопки Ctrl + Alt + T.

Иногда терминал закрепляют в списке избранных программ

Загружаем ключ сертификации для репозитория с Sublime Text и добавляем его в систему с помощью команды: wget -q0 — https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add —

Это две команды. Загрузка и добавление ключа

Вводим пароль администратора для выполнения операции.

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

Добавляем репозиторий в систему. Это можно сделать командой: sudo apt-add-repository “deb https://download.sublimetext.com/ apt/stable/”

Вот и нужный репозиторий…

Обновляем список доступных пакетов, введя: sudo apt-get update

До ввода этой команды система не знает о существовании Sublime Text

Теперь устанавливаем сам редактор с помощью команды: sudo apt-get install sublime-text

Почти готово

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

Пакетный менеджер отказывается работать при наличии такой ошибки

Это можно исправить.

Открываем файл со списком репозиториев Sublime Text. Это можно сделать, введя команду sudo nano /etc/apt/sources.list.d/additional-repositories.list.

Изменяем «поломанный» файл

Приводим все записи к тем, что отображены на скриншоте (в ней нет ошибок)

Обратите внимание на вашу запись. В ней могут отсутствовать некоторые знаки

Например, / в конце строки.

Должно быть так

После исправления ошибки нужно снова запустить процесс установки.

Используем графический интерфейс

В некоторых системах на базе Linux есть магазины приложений наподобие App Store. Оттуда можно загрузить Sublime Text.

  • Открываем магазин приложений.
  • Вводим в поисковое поле название программы.

Сразу переходим к поиску, чтобы не тратить время

Кликаем по иконке нужного приложения.

То, что нужно

Затем нажимаем на кнопку «Установить».

На этом все

Selected Examples

Advanced Stack Usage

In C, symbols are often defined with the typedef keyword. So that Goto Definition can pick these up, the symbols should have the entity.name.type scope attached to them.

Doing this can be a little tricky, as while typedefs are sometimes simple, they can get quite complex:

To recognise these, after matching the typedef keyword, two contexts will be pushed onto the stack: the first will recognise a typename, and then pop off, while the second will recognise the introduced name for the type:

In the above example, typename is a reusable context, that will read in a typename and pop itself off the stack when it’s done. It can be used in any context where a type needs to be consumed, such as within a typedef, or as a function argument.

The main context uses a match pattern that pushes two contexts on the stack, with the rightmost context in the list becoming the topmost context on the stack. Once the typename context has popped itself off, the typedef_after_typename context will be at the top of the stack.

Also note above the use of anonymous contexts for brevity within the typename context.

PHP Heredocs

This example shows how to match against in PHP. The match pattern in the main context captures the heredoc identifier, and the corresponding pop pattern in the heredoc context refers to this captured text with the \1 symbol:

Caveat 2: Windows

Windows doesn’t have , but it does have . Both of these implement memory mapped files, but there’s one important difference: Windows keeps a lock on the file, not allowing it to be deleted. Even with the Windows flag deletion does not work. This is an issue when we expect another application to delete files from under us, such as git garbage collection.

One way around this with the windows API is to essentially disable the system file cache entirely, which just makes everything absurdly slow. The way Sublime Merge handles this is by releasing the memory mapped file on idle. Its not a pretty solution, but it works.

Windows also does not have a SIGBUS signal, but you can trivially use structured exception handling in instead:

Now all is well, your application functions on Windows. But then you decide that you would like some crash reporting, to make it easier to identify issues in the future. So you add Google Breakpad, but unbeknownst to you you’ve just broken Linux and MacOS again…

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

По умолчанию все настройки уже заданы и записаны в файл Preferences Settings — Default

. Если нам необходимо внести изменения, то мы лезем на сайт, ищем нужные настройки, открываемPreferences User — Default и вписываем свои значения.

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

{ //Кодировка по умолчанию. Если изменить, то русские буквы будут крякозябрами! «fallback_encoding»: «Cyrillic (Windows 1251)», //Цветовая схема. Править не нужно — выбирается через меню. «color_scheme»: «Packages/Colorsublime-Themes/SublimeNotepad2.tmTheme», //Размер шрифта «font_size»: 10.5, //Всплывающие помощники для тегов «auto_complete»:true, //Автозакрытие тегов. Пример: </ — дальше само! «auto_match_enabled»: false, //Автоперенос строк. Горизонтальной прокрутки не будет «word_wrap»: true, //Выделять строку на которой находится курсор. «highlight_line»: true, //Подсвечивать измененные вкладки. «highlight_modified_tabs»: true, //Показывать полный путь к файлу в заголовке окна. «show_full_path»:true, //Обычно софт спрашивает о сохранении файла перед закрытием программы. При «тру» — не будет, но при запуске восстановит все как было. «hot_exit»: true, //Открывать незакрытые файлы при каждом запуске программы «remember_open_files»:true, //Отображать ли номера строк. «line_numbers»:true, //Показывать кнопки закрытия на вкладках «show_tab_close_buttons»: true, //Проверка обновлений «update_check»: false } В свою сборку вложил этот файл и подробное описание по установке и настройке.

Сниппеты

Вот эта тема мне очень понравилась! Есть определённые заранее заготовленные “кирпичики”, которыми можно пользоваться для ускорения ввода текста. Кроме того, можно задавать собственные! Сейчас покажу.

Плагины

Ставим плагин Emmet, он помогает расширить количество сокращений удобных для вёрстки кода (вот список), переходим в редактор и напишем конструкцию вида:

.class1>ul>(li.MenuItem{Пункт $})*5

То есть класс, в который вложен ul, в который вложены li в количестве пяти штук, имеющие класс MenuItem с содержимым тега “Пункт ” и порядковый номер элемента.

Нажимаем Tab и конструкция развернётся в

Колдовство? Согласен!

Собственные сниппеты

Мы также можем делать собственные сниппеты. Весьма несложно. Делается следующим образом:

  1. Tools -> Developer -> New Snippet
  2. Откроется новое окно с текстом вроде этого:
  3. Тут всё в принципе понятно, создаём конструкцию вида:

    Думаю понятно, что есть что. content – то, что будет вписано. tabTrigger – по какому сочетанию клавиш это вызывать. scope – область видимости, с какими типами файлов работать. Всё есть в документации. Я же сделал цикл for и описал там некоторую текстовую константу с тремя маркерами ввода, причём в пермое задано значение по умолчанию “0”. Символы $ тут являются служебными, и те, что относятся к тексту, приходится экранировать слешем.

  4. Сохраняем сниппет:
  5. Перезапускаем редактор, чтобы изменения вступили в силу… И пробуем! Открываем php-исходник и пишем там наше ключевое слово fori и жмём Tab:

    Сначала курсор у нас стоит в позиции с выделенным текстом 0 (это значение по умолчанию ${1:0}), при нажатии следующего Tab, он перейдёт в позицию ${2}, затем ${3}. Таким образом мы можем расставить якоря, куда прыгать курсору для ввода текста! Также есть много служебных ключевых слов и методик, позволяющих модифицировать тело сниппета на лету. Ну я так не углубляюсь, просто пишу часто употребляемые конструкции.

An Alternative

I mentioned before that you can rewrite your code to not use memory mapping. Instead of passing around a long lived pointer into a memory mapped file all around the codebase, you can use functions such as to copy only the portions of the file that you require into memory. This is less elegant initially than using , but it avoids all the problems you’re otherwise going to have.

Through some quick benchmarks for the way Sublime Merge reads git object files, was around ⅔ as fast as on linux. In hindsight it’s difficult to justify using over , but now the beast has been tamed and there’s little reason to change any more.

Скачивание и установка

Рассмотрим самую последнюю версию Sublime Text 3, поэтому наша инструкция может отличаться от того что вы видели ранее в интернете.

Чтобы скачать Sublime Text 3 откройте сайт sublimetext.com/3. Откроется страница — Download Sublime Text 3. Здесь вы можете выбрать необходимую версию под вашу операционную систему. Выбираю для windows Sublime Text 3 64 bit. Если у вас тоже windows 64 bit, можете выбрать соответствующий файл Sublime Text или его портативную версию. Скачайте загрузчик. После того как загрузчик будет скачан можно приступить к установке.

Рассмотрим как установить Sublime Text 3.

Запускаем скачанный файл от имени администратора.

Подтверждаем установку Sublime Text.

Выбираем путь для установки или оставляем тот, что выбрала программа по умолчанию.

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

Далее устанавливаем и финишируем установку.

Установленный Sublime Text вы можете найти через меню “Пуск” — “Все программы”.

Attributes

Attributes are specified as an array of strings. Each string
is an attribute name. To check for the absence of an
attribute, prepend a to the name.

The following attributes are common to all elements:

hover
set whenever the user’s mouse is hovered over an element

Luminosity

Although not available on all elements, many have attributes set
based on the approximate luminosity of the current color scheme.
Most elements have the attributes set based on the global color
scheme. Tabs and the tab background, however, have the attributes
based on the color scheme specific to the selected view.

The attributes are assigned based on the value of
the background color, when represented as
HSV
colors.

Скачать Русификатор sublime text и установить

  1. Скачать Русификатор для sublime text
  1. Распакуйте скачанный архив и скопируйте все файлы с расширением .sublime-menu (кроме папки «backup») в одну из следующих папок в зависимости от вашей операционной системы, подтвердив замену (если папки «Default» по указанному пути нет, то создайте ее):

    Скопируй и вставь в строке путь в любой папке

    C:\Users\Имя_пользователя\AppData\Roaming\Sublime Text 3\Packages\Default

    В архиве есть файл «README.md» и там есть ниже описанный путь, и ссылка на автора перевода… где можно его поблагодарить…

    В любом случае нужно было указать автора, и мы ему очень благодарны!

    ОС и тип установки

    Путь

    Windows 7/8/10

    c:\Users\Имя_пользователя\AppData\Roaming\Sublime Text 3\Packages\Default\

    Windows XP

    c:\Documents and Settings\Имя_пользователя\Application Data\Sublime Text 3\Packages\Default\

    Windows (портативная установка)

    \папка_с_установленным_Sublime_Text\Data\Packages\Default\

    OS X

    ~/Library/Application Support/Sublime Text 3/Packages/Default/

    Linux

    ~/.config/sublime-text-3/Packages/Default/

  2. Как поменять английский язык на русский в программе Sublime text 3!? Устанавливаем русификатор, установка которого описана выше, закрываем программу, открываем программу заново! Русский язык должен появиться автоматически!

Вас может еще заинтересовать список тем : #SUBLIME_TEXT_3 | Название скрипта :Русификатор sublime text скачать установить

Скрипт № 91.2Ссылка на скачивание : Все скрипты на

//dwweb.ru/comments_1_5/include/img/hand_no_foto.png
no
no

Settings

tab_completion
boolean

When enabled, pressing Tab will insert the best matching completion. When disabled, Tab will only trigger snippets or insert a tab character. Shift+Tab can be used to insert an explicit tab when tab_completion is enabled.

Disabling this setting will not implicitly disable auto_complete.

auto_complete
boolean

Automatically show the completions popup when typing.

This behavior is not influenced by the setting tab_completion.

auto_complete_size_limit
integer

If the filesize in bytes of the current file is larger than this, the completions popup will not be automatically shown.

auto_complete_delay
integer

The number of milliseconds to wait before showing the completions popup automatically.

auto_complete_selector
string

A selector to limit when the completions popup will be automatically shown.

Example:

The auto_complete_triggers» setting may be used to re-enable the automatic completions popup in specific situations.

auto_complete_triggers
array of objects

Provides explicit triggers for when to automatically show the completions popup.

Each object must contain the keys with a string value containing a selector to match the caret position against, and a key with a string value specifying what characters must be present to the left of the caret.

Example:

Triggers will override the setting auto_complete_selector.

auto_complete_commit_on_tab
boolean

By default, auto complete will commit the current completion on Enter. This setting can be used to make it complete on Tab instead.

Completing on Tab is generally a superior option, as it removes ambiguity between committing the completion and inserting a newline.

auto_complete_with_fields
boolean

Controls if the completions popup is automatically shown when snippet fields are active. Only relevant if auto_complete_commit_on_tab is enabled.

auto_complete_cycle
boolean

Controls what happens when pressing while the first item in the completions popup is selected: if , the popup is hidden, otherwise the last completion in the popup is selected.

Also causes the first completion to be selected when is pressed on the last completion.

auto_complete_use_history
boolean

If previously-selected completions should be automatically selected

auto_complete_use_index
4052
boolean

When enabled, the completions popup will show context-aware suggestions based on other files in the project

auto_complete_preserve_order
4052
string

Controls how the auto complete results are reordered when typing:

  • – fully reorder the results according to how well the completion matches the typed text
  • – partially reorder the results, taking into account how well the completion matches whats typed, and likelihood of the completion
  • – never reorder the results
auto_complete_trailing_symbols
4050
boolean

Add trailing symbols (e.g., , ) if the completion engine thinks they‘re likely enough

auto_complete_trailing_spaces
4050
boolean

Add a space after completions if the completion engine thinks they‘re likely enough

auto_complete_include_snippets
4050
boolean

Controls if snippets will not be included in the completions popup.

When disabled, snippets can still be triggered by typing their tab trigger in, and pressing Tab when the completion popup is not showing.

auto_complete_include_snippets_when_typing
4052
boolean

When this is set to , snippets won‘t be present in the completions popup when it is automatically triggered. They will be shown if it is manually triggered.

ignored_snippets
4050
array of strings

File patterns specifying which snippet files to ignore.

For example, to ignore all the default C++ snippets:

Plugin Support

It’s incredible to see what the community has built using the plugin system for Sublime Text.
The plugin system offers the power and flexibility needed to truly personalize your experience.
We know this is an important part of software that gets it really right, so we’ll be bringing it to Sublime Merge.

The Team Behind Sublime Merge

We’ve got big plans for the Sublime Merge team, and we’re full steam ahead!
Our team is growing, and we’d like to welcome our new developer, David!
You can thank him for features such as commit stats, the new console, and some great performance improvements in Sublime Merge.

Hello hello, I’m David, one of the software engineers at Sublime HQ.
I’m usually the quiet guy that enjoys making silly jokes whenever I’m given the chance.
As a programmer, I enjoy learning how to make traditional software, and writing clean compact code.
In my own time I’ve been learning how to draw digitally.

Feedback

As always, we’re excited to hear your thoughts.
We’ll be on the forum listening to any feedback.
We also have an official bug tracker, where you can share your ideas for features.

Thank You

We know times are tough on a global scale at the moment, and our thoughts are with all of you.
We’d like to take this time to thank you for your feedback and participation, whether it be on the forums or the Discord server.
Through this, you have guided Sublime Merge to where it is today.
We’re excited to continue delivering the best Git experience to you.

Project Format

.sublime-project files are JSON, and support three top level sections: folders, for the included folders, settings, for file-setting overrides, and build_systems, for project specific build systems. An example:

Folders

Each folder must have a path key, which may be relative to the project directory, or a fully qualified path. Additional optional keys include:

  • name — A string used in place of the folder name in the side bar.
  • file_include_patterns — A list of strings for filenames to include from the folder. Anything not matching these patterns will be excluded. This is checked before file_exclude_patterns.
  • file_exclude_patterns — A list of strings for filenames to exclude from the folder. This is added to the global setting of the same name. This is checked after file_include_patterns.
  • folder_include_patterns — A list of strings for subfolder paths to include from the folder. Anything not matching these patterns will be excluded. This is checked before folder_exclude_patterns.
  • folder_exclude_patterns — A list of strings for subfolder paths to exclude from the folder. This is added to the global setting of the same name. This is checked after folder_include_patterns.
  • binary_file_patterns — A list of strings for filenames to treat as binary files, and thus ignored in Goto Anything or Find in Files.
  • index_include_patterns — A list of strings for full file paths to index in the folder. This is added to the global setting of the same name. Anything not matching these patterns will be excluded from the index. This is checked before index_exclude_patterns.
  • index_exclude_patterns — A list of strings for file full paths to index in the folder. This is added to the global setting of the same name. This is checked after index_include_patterns.
  • follow_symlinks — If symlinks should be followed when building the folder tree.

Converted projects from earlier versions may have a mount_points entry under folders. If you wish to use the exclude patterns, you’ll need to change to the above format.

Settings

Settings may be specified here using the settings key, and will override regular user settings. They will not, however, override syntax specific settings.

Note that only settings in the category may be controlled by a project.

Build Systems

build_systems specifices a list of inline Build Systems definitions. In addition to the regular build system settings, a name must be specified for each one. Build systems listed here will be available via the regular Tools Build Systems menu.

Caveat 4: 32bit Support

Memory mapping may not use physical memory, but it does require virtual address space. On 32bit platforms your address space is ~4GB. So while your application may not use 4GB of memory, it will run out of address space if you try to memory map a too large file. This has the same result as being out of memory.

Sadly this doesn’t have a workaround like the other issues, it is a hard limitation of how memory mapping works. You can now either rewrite the codebase to not memory map the whole file, live with crashes on 32bit systems or not support 32bit.

With Sublime Merge and Sublime Text 3.2 we took the «no 32bit support» route. Sublime Merge does not have a 32bit build available and Sublime Text disables git integration on 32bit versions.

Загрузка Windows 10 с помощью программы Rufus

Customization

Caveat 1: SIGBUS

SIGBUS (bus error) is a signal that happens when you try to access memory that has not been physically mapped. This is different to a SIGSEGV (segmentation fault) in that a segfault happens when an address is invalid, while a bus error means the address is valid but we failed to read/write.

As it turns out, the ticket comes from someone using a networked drive. Their network happened to disconnect while your memory mapped file was open, and since the file no longer existed the OS couldn’t load it into ram for you and gave you a SIGBUS instead.

Because the OS is loading the file on demand, you now have this wonderful issue where any arbitrary read from an address into the memory mapped file can and will fail at some point.

Luckily on POSIX systems we have signal handlers, and SIGBUS is a signal we can handle. All you need to do is register a signal handler for SIGBUS when the program starts and jump back to our code to handle failures there.

Sadly our code actually has some edge cases we should consider:

Signal handlers are global, but signals themselves are per-thread. So you need to make sure you’re not messing with any other threads by making all our data thread local. Let’s also add some robustness by making sure we’ve called before .

Using and ing from a signal handler is actually unsafe. It seems to cause undefined behaviour, especially on MacOS. Instead we must use and . Since we’re jumping out of a signal handler, we need that signal handler to not block any future signals, so we must also pass to .

This is starting to get quite complicated, especially if you were to have multiple places where a SIGBUS could happen. Let’s factor things out into functions to make the logic a little cleaner.

There, now you just need to remember to always call for every application, and wrap all accesses with . Annoying, but manageable. So now you’ve covered POSIX systems, but what about Windows?

Testing

When building a syntax definition, rather than manually checking scopes with the show_scope_name command, you can define a syntax test file that will do the checking for you:

To make one, follow these rules

  1. Ensure the file name starts with syntax_test_.
  2. Ensure the file is saved somewhere within the Packages directory: next to the corresponding .sublime-syntax file is a good choice.
  3. Ensure the first line of the file starts with: <comment_token> SYNTAX TEST "<syntax_file>". Note that the syntax file can either be a .sublime-syntax or .tmLanguage file.

Once the above conditions are met, running the build command with a syntax test or syntax definition file selected will run all the Syntax Tests, and show the results in an output panel. Next Result (F4) can be used to navigate to the first failing test.

Each test in the syntax test file must first start the comment token (established on the first line, it doesn’t actually have to be a comment according to the syntax), and then either a ^ or <- token.

The two types of tests are:

  • Caret: ^ this will test the following selector against the scope on the most recent non-test line. It will test it at the same column the ^ is in. Consecutive ^s will test each column against the selector.
  • Arrow: <- this will test the following selector against the scope on the most recent non-test line. It will test it at the same column as the comment character is in.

Caveat 3: 3rd Parties

The problem with using signal handlers is that they’re global, across threads and libraries. If you have or have added a library like Breakpad that uses signals internally you’re going to break your previously safe memory mapping.

Breakpad registers signal handlers at initialization time on Linux, including one for SIGBUS. These signal handlers override each other, so installation order is important. There is not a nice solution to these types of situations: You can’t simply set and reset the signal handler in as that would break multithreaded applications. At Sublime HQ our solution was to turn an unhandled SIGBUS in our signal handler into a SIGSEGV. Not particularly elegant but it’s a reasonable compromise.

On MacOS things get a little more complicated. XNU, the MacOS kernel, is based on Mach, one of the earliest microkernels. Instead of signals, Mach has an asynchronous, message based exception handling mechanism. For compatibility reasons signals are also supported, with Mach exceptions taking priority. If a library such as Breakpad registers for Mach exception messages, and handles those, it will prevent signals from being fired. This is of course at odds with our signal handling. The only workaround we’ve found so far involves patching Breakpad to not handle SIGBUS.

3rd party libraries are a problem because signals are global state accessible from everywhere. The only available solutions to this are unsatisfying workarounds.

Подготовка поверхности

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

Класть кафель на стяжку намного проще. Для этого постарайтесь залить ее по уровню. В таком случае плиточный слой будет минимальным. Любые загрязнения и наплывы раствора удаляются.

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

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

Подводим итог по Sublime text 3

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

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

Из этого всего набора мне не хватает лишь авто импортера
какого-то который бы мне постоянно импортировал автоматом все библиотеки,
которые я подключаю при работе с angular.

В общем если я был полезен для тебя, не поленись просто
поделиться этой статьей. В итоге, у тебя на странице будет быстрый доступ к
этой статье, а у меня побывают твои друзья если и им эта тема будет интересна.
Круто? Круто!

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

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

Adblock
detector