Emmet в Notepad++. Установка и настройка
Если вы уже начали писать проекты на html то пора вам ознакомиться с техниками ускорения написания кода, типа Zen Coding или Emmet. Наибольшую часть времени при работе с HTML занимает написание тегов. Длинные конструкции, особенно с написанием классов или id занимают очень много времени и являются рутинными операциями. Проекты типа ZenCoding и его дальнейшее развитие Emmet позволяет ускорить и автоматизировать данный процесс.
Для начала давайте установим плагин Emmet для Notepad++. Откройте Notepad++ и перейдите в Плагины → Plugin Manager → Show Plugin Manager. Найдите Emmet и установите его. При установке плагин потребует от вас установки Python script. Согласитесь на установку. А теперь внимание! Та версия Python script которая тянеться из репозитария устарела и не позволяет использовать Emmet, выдавая ошибку «unknown exception» и «Python Script Plugin did not accept the script». Как это исправить? Просто скачайте python script. Распакуйте архив и скопируйте в папку, где установлен Notepad++ все файлы. Если потребуется заменить некоторые файлы — соглашайтесь. Перезапустите Notepad++ и начинайте работу.
Читайте также как установить Emmet и другие плагины в Brackets
Принципы работы с Emmet
Принцип работы простой — вы пишете сокращенную формулу, после чего выбираете опцию Expand Abbreviation (Ctrl+Alt+Enter).
Давайте попробуем. Откроем новый документ и наберем html:5 после чего нажмем Ctrl+Alt+Enter. Итак, было:
html:5
html:5 |
Стало:
<!doctype html> <html lang=»en»> <head> <meta charset=»UTF-8″> <title>Document</title> </head> <body> </body> </html>
1 2 3 4 5 6 7 8 9 10 |
<!doctype html> <html lang=»en»> <head> <meta charset=»UTF-8″> <title>Document</title> </head> <body> </body> </html> |
Таким образом, плагин Emmet, разворачивает код и дополняет его. Давайте ознакомимся с наиболее распространенными сокращениями.
Для создания любого элемента с id используйте синтаксис p#yy. Где p — элемент, yy — id элемента. Для класса — p.yy.
Развернется в:
<p></p>
<p></p> |
Также можно комбинировать ввод id и класса. Для этого используется запись p.class#id
Для добавления атрибутов используйте синтаксис p[title=»hello»]. Данный текст развернется в:
<p title=»hello»></p>
<p title=»hello»></p> |
Как вы уже догадались, для добавления любого элемента необходимо просто набрать его имя: div, p, h2.
Если необходимо добавить содержимое элемента, то этом можно сделать с помощью фигурных скобок. Так код h2{Привет} преобразуется в:
<h2>Привет</h2>
<h2>Привет</h2> |
Для вложенных элементов используется селектор: <
Конструкция div>p>span преобразуется в :
<div> <p><span></span></p> </div>
<div> <p><span></span></p> </div> |
Для генерации двух элементов на одном уровне необходимо применять знак +. Так div+p дадут:
<div></div> <p></p>
<div></div> <p></p> |
Довольно простая логика, согласны?
Больше всего я не люблю вводить списки. Скучно, долго и нудно. Особенно если эти списки содержат гипессылки. Раньше я набирал одну строку списка и копировал нужное количество раз. Теперь все стало намного проще: ul>li*3>a[href=»#» title=»»]
<ul> <li><a href=»#» title=»»></a></li> <li><a href=»#» title=»»></a></li> <li><a href=»#» title=»»></a></li> </ul>
<ul> <li><a href=»#» title=»»></a></li> <li><a href=»#» title=»»></a></li> <li><a href=»#» title=»»></a></li> </ul> |
Таким образом, модификатор *3 продублировал строку 3 раза.
Описанных выше опций хватает для написания любого сложного HTML кода.
Хорошая шпаргалка по написанию кода с помощью Emmet здесь и здесь
Не могу добавить расширение Emmet для Brackets на Linux Mint Cinnamon
Вопрос задан
Изменён 12 месяцев назад
Просмотрен 733 раза
Жму на значок Расширения. Начинает бесконечно долго крутится значок загрузки. Может есть другие способы установить еммет?
- linux
- linux-mint
- emmet
Emmet plugin for Brackets editor
8Решил поставить brackets на Linux Mint 20 Ulyana(Ubuntu 20.04 LTS).
Вариант с apt install snapd snap install brackets --classic мне не нравится.
Поблема с отображением и обновлением плагинов.
Решение: Запускаете brackets. Меню Debug - Switch Language- C System Default на русский и Reload Brackets Далее просто выходите из программы. При следующем запуске меню на русском и плагины должны ставиться. Были проблемы с переключением языка при запуске brackets через меню.
Запускал в терминале /snap/bin/brackets
Brackets есть и на Flathub
Скачал https://github.com/adobe/brackets/releases/download/release-1.14.1/Brackets.Release.1.14.1.64-bit.deb
Лучше так не делать dpkg -i Brackets.Release.1.14.1.64-bit.deb После такого приходится запускать apt --fix-broken install Через gdebi и gdebi-core установка тоже не проходит. Проблемы с libcurl3.
Почитал https://github.com/adobe/brackets/issues/14786
dpkg-deb -R ./Brackets.Release.1.14.1.64-bit.deb Brackets sed -i 's/libcurl3/libcurl3 | libcurl4/' Brackets/DEBIAN/control dpkg-deb -b Brackets Brackets-fixed.deb sudo apt install -f ./Brackets-fixed. deb
Emmet plugin нашелся
Ну и поставился
2Зарегистрируйтесь или войдите
Регистрация через GoogleОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.
Как установить плагин emmet
Ваш браузер не поддерживает JavaScript. В результате ваши впечатления от просмотра будут уменьшены, и вы будете переведены в режим только для чтения .
Загрузите браузер, поддерживающий JavaScript, или включите его, если он отключен (например, NoScript).
Эта тема была удалена. Его могут видеть только пользователи с правами управления темами.
Я устанавливаю последнюю версию np++.
Вручную установить менеджер подключаемых модулей. (Создал папку «pluginmanager» в папке np++ и скопировал в dll).
Запустите менеджер плагинов и установите плагин emmet.
(Установлены emmet и pyton).
Чем запросить перезагрузку np++.
После перезапуска np++ вышло окно с ошибкой:http://i.piccy.info/i9/385b02d2bb9101343e6b4046618c4264/1553608476/11102/1309750/2.gif
@Александра-Руденко
старый менеджер плагинов не совместим с более новыми версиями notepad++.
, пожалуйста, не используйте диспетчер плагинов в notepad++ версии 7.6 и выше, так как он будет записывать файлы в неправильные места.сначала отмените все изменения, внесенные вами в установку notepad++, удалив менеджер плагинов и удалив все, что вы могли установить с помощью менеджера плагинов.
убедитесь, что вы не видите никаких сообщений об ошибках при запуске notepad++, и убедитесь, что вы не видите
в вашем меню плагинов больше.далее следуйте >>> Руководству: Как установить плагин PythonScript на Notepad++ 7.6.3, 7.6.4 и выше <<<, чтобы установить pythonscript вручную.
, затем загрузите подключаемый модуль emmet
emmet-npp.zip
из >>> здесь <<< и распакуйте его.перейдите в меню notepad++ 7.6.4
плагины > откройте папку плагинов
, чтобы открыть папку плагинов, и создайте новую папку с именемЭмметАЭС
.скопируйте
EmmetNPP.dll
из извлеченногоemmet-npp.zip
в созданную вами папкуEmmetNPP
.
скопируйте все файлы и папки из папкиEmmetNPP
из извлеченногоemmet-npp.zip
в созданную вами папкуEmmetNPP
.примечание: ваша папка
plugins\EmmetNPP
теперь должна содержатьEmmetNPP.dll
,_PyV8.pyd
,editor.js
,npp_emmet. py
,PyV8.py
и папку с именемemmet
.теперь перезапустите блокнот ++, и вы увидите как плагин emmet, так и плагин скрипта python в меню плагинов.
Версия плагина emmet, загруженная отсюда, подходит только для 32-битной ОС
-
добро пожаловать в сообщество Notepad++, @Tanveer-Malik
Версия плагина emmet, загруженная отсюда, подходит только для 32-битной ОС
да, официальный плагин emmet notepad++ известен только как 32-битный.
, если вам нужен emmet, установите 32-битную версию notepad++, которая будет нормально работать на 64-битной ОС Windows.
в качестве альтернативы вы можете попробовать использовать экспериментальную, неофициальную, 64-битную версию, скомпилированную пользователем, из >>> здесь <<<.Если вам нужна дополнительная базовая информация о плагине emmet notepad++, посетите также
трекер проекта плагина emmet: https://github.com/emmetio/npp/issues
и страницы документации emmet: https://docs.emmet.ioимейте в виду, что проект emmet не очень хорошо поддерживается, и доступная документация emmet может быть устаревшей.
@Meta-Chuh
Где новый менеджер плагинов? org/Comment»> Я вижу только «Открыть папку плагинов…» (Notepadd++ 7.6.4 или 7.6.5)
-
@Marcin-Po сказал:
Я вижу только «Открыть папку плагинов…» (Notepadd++ 7. 6.4 или 7.6.5)
Обычно так бывает при нестандартном способе установки. Вы использовали установщик или портативную версию zip/7z/minimalist? Если установщик, то вы его ставили в обычное место или указали другой каталог? Если портативный, в какой каталог вы его поместили?
(Также перейдите в меню Notepad++ ?> Информация об отладке > Скопируйте информацию об отладке в буфер обмена и вставьте в свой ответ — это покажет нам, что Notepad++ может видеть о своей среде)
-
Я использовал установщик и нормальное расположение.
Notepad++ v7.6.5 (32-разрядная версия)
Время сборки: 29 марта 2019 г. — 02:46:18
Путь: C:\Program Files (x86)\Notepad++\notepad++.exe
Режим администратора: ВКЛ
Режим локальной конференции : OFF
ОС : Windows 7 (64-разрядная)
Плагины : DSpellCheck. dll EmmetNPP.dll mimeTools.dll NppConverter.dll NppExport.dll PythonScript.dll -
@Marcin-Po сказал:
Я использовал установщик и нормальное расположение.
Спасибо.
Я думаю, что с этими ответами вы увидите администратора плагинов.
Я вижу, что вы находитесь в режиме администратора. Я не думаю, что это повлияет на доступность администратора плагинов. С моим портативным компьютером я могу работать в режиме администратора и по-прежнему видеть администратор плагинов. Возможно, @Meta-Chuh или кто-то другой с уже доступной установленной версией может подтвердить, что режим администратора работает с администратором плагинов на 32-разрядной версии 7.6.5.
О, интересно, что-то напутано в программе обновления GUP. Можете ли вы дать нам пасту из каталога
c:\program files (x86)\noteapd++\updater
? чтобы мы могли видеть, есть ли у вас все файлы, необходимые для внутреннего средства обновления (на которое полагается администратор плагинов, IIRC). -
привет @Marcin-Po @PeterJones et al.
да, администратор плагинов notepad++ появится и будет работать в режиме администратора.
режим администратора будет активирован автоматически, если контроль доступа пользователей Windows (UAC) отключен, и вы увидите
Notepad++ [Администратор]
в строке заголовка Notepad++.одна вещь, которая может вызвать то, что вы видите, это отсутствие списка плагинов.
перейдите вплагины > откройте папку плагинов. ..
и найдите папку с именемConfig
. он должен содержать файл с именемnppPluginList.dll
, который содержит список подключаемых модулей., если он отсутствует, переустановите notepad++ 7.6.5. 32 бит поверх существующего блокнота++ с помощью установщика отсюда:
https://notepad-plus-plus.org/repository/7.x/7.6.5/npp.7.6.5.Installer.exe
(удаление существующего блокнота++ не требуется)важно : когда вы переустанавливаете блокнот ++ поверх существующего блокнота ++, убедитесь, что параметры установщика
плагины
иплагины администратора
включены. -
@PeterJones сказал:
О, интересно, что-то не так в программе обновления GUP. Можете ли вы дать нам вставку из каталога c:\program files (x86)\noteapd++\updater? чтобы мы могли видеть, есть ли у вас все файлы, необходимые для внутреннего средства обновления (на которое полагается администратор плагинов, IIRC).
gpup.exe
GUP.exe
libcurl.dll
ЛИЦЕНЗИЯ
README.md -
@Meta-Chuh сказал:
важно: когда вы переустанавливаете блокнот++ поверх существующего блокнота++, убедитесь, что в настройках установщика включены плагины и администратор плагинов.
Переустановка ничего не дает, но пробовал переустановить без плагинов и плагинов админа, и еще раз с этими опциями и работает!
org/Comment»> -
@Александра-Руденко
перейдите в меню блокнота ++
плагины > откройте папку плагинов
, чтобы открыть папку плагинов, и откройте папкуEmmetNPP
.проверьте наличие файлов
_PyV8.pyd
,editor.js
,npp_emmet.py
,PyV8.py
и папки с именемemmet
.
, если нет, скопируйте их из папкиEmmetNPP
внутриemmet-npp.zip
.если все на своих местах, то
расширить аббревиатуру
будет вести себя так, как показано на скринкасте ниже: -
@Meta-Chuh
Это новый плагинComparePlus
? -
Те же ошибки.
http://i.piccy.info/i9/8c542a9158620c5df8f24c3e61c3f758/1554642244/8420/1309750/plugin_exception_pyton_1.gif
http://i. piccy.info/i9/eadf8 d0a80d8beeb9feb034c72bbee6/1554642290/6704/1309750/emmet_2.gif
http://i.piccy.info/i9/767e2c0f496d0ceaac5e43f1721da3a0/1554804918/72997/1309750/explorer.gif
-
@andrecool-68
да, хорошо подмечено.
это грядущий
ComparePlus
от @pnedev
(также небесный создательплагинов > открыть папку плагинов...
😉)большие и потрясающие новые изменения и функции по сравнению со старым плагином сравнения, такие как дифференциальный красный/зеленый выделение в diff строках для удаленного/добавленного текста вместо одного цвета и многое другое. 👍
org/Comment»> @Alexander–Rudenko
Вставьте свои фотографии на форум таким образом
![](http://i.piccy.info/-x-x-.gif)
@Marcin-Po
новая встроенная замена менеджера плагинов называется Plugins Admin
и находится в меню Плагины > Администрирование плагинов...
, как показано на скриншоте ниже.
примечание: администратор плагинов не содержит все плагины, так как некоторые из них не были добавлены в официальный список плагинов notepad++ разработчиком плагина.
У меня установлен плагин emmet, как описано в инструкции.
Но при выборе в меню плагина «Расширить аббревиатуру» np++ вылетает ошибка.
http://i.piccy.info/i9/8c542a9158620c5df8f24c3e61c3f758/1554642244/8420/1309750/plugin_exception_pyton_1.gif
http://i.piccy.info/i9/eadf8 d0a80d8beeb9feb034c72bbee6/1554642290/6704/1309750/emmet_2.gif
@Meta-Chuh
В PluginAdmin я вижу только одно Compare …ComparePlus нет)
Эммет · PyPI
# EmmetЦелью Emmet является «создание» коллекций свойств материалов на основе результатов расчетов вычислительных материалов. В настоящее время действительная цель Emmet состоит в том, чтобы использовать результаты расчетов электронной структуры [VASP](http://vasp.at) для создания коллекций MongoDB, которые поддерживают веб-сайт [Materials Project](https://materialsproject.org) и его приложения.
Эммет использует [Maggma](https://github.com/materialsproject/maggma), нашу более общую структуру агрегирования, которая абстрагирует закулисный механизм: Maggma предоставляет наш класс `Builder` и общий интерфейс для ` Stores», которые могут быть коллекциями MongoDB или обычными файлами JSON.
`Builder` берет `исходные` хранилища, обрабатывает элементы в этом хранилище, а затем создает результаты для `целевых` хранилищ.
Для облегчения отладки в Emmet данные передаются только *в одном направлении*: это означает, что каждый Магазин создается только определенным разработчиком и не будет изменяться последующими разработчиками.
Сборщики предназначены для периодического и автоматического запуска: поэтому Магазины имеют фильтр «последнее обновление» (`lu_filter`), поэтому мы пытаемся обрабатывать только новые записи в Магазине.
Emmet в настоящее время в основном является внутренним инструментом проекта материалов, поэтому, если вы читаете это, возможно, вы только что присоединились к группе, и в этом случае: добро пожаловать! 🙂
## Содержание
* [Установка](#installation)
* [Запуск Builder](#running-a-Builder)
* [Написание нового Builder](#writing-a-new -строитель)
* [VASP Builders](#vasp-builders)
* [MaterialsBuilder](#materialsbuilder)
* [ThermoBuilder](#thermobuilder)
* [ElasticBuilder](#elasticbuilder)
* [Diffraction Builder](#diffraction-builder )
* [Построитель топологии](#topology-builder)
## Установка
Emmet использует PyPI, поэтому `pip install emmet` должен работать. Однако в настоящее время он находится в очень активной разработке, поэтому на данный момент рекомендуется редактируемая установка:
«`bash
pip install -e [email protected]:materialsproject/emmet.git#egg=emmet —src .
«`
## Запуск Builder
Вот пример сценария для запуска MaterialsBuilder. При необходимости замените информацию о базе данных (предполагается, что «тестовая» база данных работает на локальном хосте с предварительно заполненной коллекцией «задачи» с «mat.json» в рабочем каталоге).
«`python
#!/usr/bin/env python
из maggma.runner import Runner
из maggma.stores import MongoStore, JSONStore
из emmet.vasp.builders.materials import MaterialsBuilder
из emmet.vasp.builders.thermo import ThermoBuilder
tasks_store = MongoStore(database=»test»,
collection_name=»materials»,
host=»localhost»,
port=27017,
lu_field=»last_updated»)
material_settings_store = JSONStore(«mat. json»)
material_store = MongoStore(database=»test»,
collection_name=»tasks»,
host=»localhost»,
port=27017)
material_builder = MaterialsBuilder(tasks_store,
material_settings_store ,
магазин_материалов,
lu_field=»last_updated»)
runner = Runner([materials_builder])
runner.run()
«`
Позаботьтесь о правильной установке `lu_field`: это ключ, который ищет строитель чтобы увидеть, когда документ последний раз обновлялся, и, таким образом, какие новые документы строить. Это поле не существует по умолчанию в MongoDB.
Чтобы запустить более одного компоновщика, добавьте:
«`python
thermo_store = MongoStore(database=»test»,
collection=»thermo»,
host=»localhost»,
port=27017)
thermo_builder = ThermoBuilder(materials_store,
thermo_store)
«`
и измените `runner = Runner([materials_builder])` на `runner = Runner([materials_builder, thermo_builder])`.
Список сборщиков может быть представлен в любом порядке: их зависимости будут разрешены интеллектуально, а `Runner` запустит сборщики в правильном порядке и параллельно, если это поддерживается системой.
## Написание нового билдера
Создайте подкласс базового класса [`Builder`](https://github.com/materialsproject/maggma/blob/master/maggma/builder.py) и реализуйте следующие методы:
* `get_items()` — получить ваши элементы для обработки, например. в результате выполнения запроса к вашему источнику (источникам)
* `process_item()` – для каждого из ваших элементов сделайте что-нибудь, например. рассчитать дифракционную картину
* `update_targets()` – обновить ваши цели обработанными данными
* `finalize()` – необязательно, выполнить любую окончательную очистку (закрыть соединения с базой данных и т. д., базовый класс может справиться с этим )
[`DiffractionBuilder`](https://github.com/materialsproject/emmet/blob/master/emmet/vasp/builders/diffraction. py) — хороший простой конструктор, который можно скопировать для начала работы.
## VASP Builders
Все сборщики VASP работают с хранилищем `tasks`, которое анализируется из *любой* папки вычислений VASP с помощью [Atomate’s VaspDrone](https://pythonhosted.org/atomate/atomate.vasp.html #atomate.vasp.drones.VaspDrone). После того, как магазин «задач» создан, строители Эммета вступают во владение.
![Обзор блок-схемы: каталог вывода Vasp ведет к хранилищу задач (через VaspDrone, atomate.vasp.drones), хранилище задач с хранилищем настроек материалов и хранилищем StructureNLs ведет к хранилищу материалов (через MaterialsBuilder, emmet.vasp.builders.materials) , Магазин материалов ведет в магазин Thermo (через ThermoBuilder, emmet.vasp.builders.thermo), Магазин материалов ведет в магазин Elastic (через ElasticBuidler, emmet.vasp.builders.elastic), Магазин материалов ведет в магазин Diffraction (через DiffractionBuilder, emmet). .vasp.builders.diffaction), хранилище материалов ведет к хранилищу диэлектриков (через DielectricStore, emmet. vasp.builders.dielectric)](docs/images/EmmetBuilders.png)
### MaterialsBuilder
**Источник(и)** `задачи` (обычно `коллекция задач`), `material_settings` (обычно [`mat.json`](vasp/builders/mat.json)), `snls` (необязательно)
**Цель(и)** `материалы` (обычно `коллекция материалов`)
##### Что делает MaterialsBuilder:
1. Фильтры для включения только успешно выполненных задач.
2. Группирует задачи в задачи одной структуры.
Сопоставление структуры сначала выбирает только материалы с одинаковой химической формулой, а затем использует программу `StructureMatcher` от pymatgen для выполнения анализа симметрии.
3. Для каждого свойства ранжирует задачи для данной структуры в соответствии с теми, которые, как ожидается, предсказывают свойство более точно (например, ширина запрещенной зоны из расчета структуры полосы оценивается выше, чем ширина запрещенной зоны из общего расчета). . Затем это значение выбирается в качестве канонического значения для этого свойства.
Тип `task_type` уже определен и получен из хранилища задач, а ранжирование указано в [`mat.json`](vasp/builders/mat.json). Не предпринимается никаких попыток ранжировать, какая задача одного и того же типа `task_type` является лучшей; в этом случае предполагается, что самый последний расчет имеет приоритет.
4. *(Необязательно)* [Язык обозначения структуры](http://pymatgen.org/pymatgen.matproj.snl.html#pymatgen.matproj.snl.StructureNL) (или «SNL») обеспечивает способ свяжите структуру и ее метаданные (например, bibtex-ссылки на источник структуры) в проекте материалов. Это выполнит поиск существующих SNL для структуры и соответственно назначит SNL.
### ThermoBuilder
**Источник(и)** `материалы`
**Цель(и)** `термо`
##### Что делает ThermoBuilder:
1. Группирует материалы в одну химическую систему (то есть материалы, кристаллическая структура которых содержит одни и те же элементы).
2. Отфильтровывает материалы, которые нельзя напрямую сравнивать друг с другом, напр. они были рассчитаны разными методами, так что их полная энергия находится в разных масштабах.
По умолчанию это делается с помощью [`MaterialsProjectCompatibility(‘Advanced’)`](http://pymatgen.org/pymatgen.entries.compatibility.html#pymatgen.entries.compatibility.MaterialsProjectCompatibility) в pymatgen, который интеллектуально смешивает расчеты GGA и GGA+U в зависимости от присутствующих элементов и вносит необходимые коррективы в общую энергию.
3. Использует пакет pymatgen [`phasediagram`](http://pymatgen.org/pymatgen.phasediagram.html) для расчета [энергии над корпусом](https://materialsproject.org/wiki/index.php/ Глоссарий_терминов#Энергетика) для каждого материала и, если материал нестабилен, путь его разложения.
### ElasticBuilder
**Источник(и)** `материалы`
**Цель(и)** `эластик`
##### Что делает ElasticBuilder:
1. Выбирает начальный конструкция из материалов
2. Находит деформированные экземпляры исходной структуры из материалов и вычисляет матрицу деформации
3.