factograf
UK
Увійти

текстовий редактор із розширеним функціоналом орієнтований на програмістів

Notepad++

Notepad++

Головне

дата створення / заснування24 листопада 2003 р.
дата публікації25 листопада 2003 р.
є одним ізтекстовий редактор
Усі дані картки 15
Тип
текстовий редактор
Автор
Don Ho
Розробник
Don Hod
Перший випуск
24 листопада 2003
Стабільний випуск
8.9.8 (23 серпня 2026)
Платформа
X86, x86_64 і A64d
Операційна система
Windows
Мова програмування
C++
Доступні мови
76 мов
Українська мова
так
Стан розробки
активний
Ліцензія
GNU GPL Версія 2
Онлайн-документація
npp-user-manual.org​(англ.)
Репозиторій
github.com/notepad-plus-plus/notepad-plus-plus
Вебсайт
notepad-plus-plus.org

Notepad++ — багатофункціональний текстовий редактор та редактор вихідного коду, орієнтований на платформу Microsoft Windows. Програма вирізняється підтримкою багатовіконного інтерфейсу, що дозволяє одночасно працювати з декількома файлами в одному вікні. Основою редактора є компонент Scintilla, який забезпечує розширені можливості рендерингу тексту, підсвічування синтаксису та підтримку багатьох мов програмування (C, C++, Java, XML, HTML, PHP, JavaScript, ASCII, Visual Basic / VBScript, SQL, Ruby, CSS, Pascal, Perl і Python). Notepad++ написаний мовою C із використанням Win32 API та Standard Template Library (STL), що забезпечує високу продуктивність і мінімальний розмір виконуваного файлу. Такий підхід дозволяє оптимізувати використання ресурсів, зменшити споживання енергії та підвищити екологічність програмного забезпечення, що є частиною філософії проєкту.

Scintilla, як ядро редактора, відповідає за гнучке підсвічування синтаксису, згортання коду, багаторівневу підтримку мов програмування та розширюваність через плагіни. Вибір C++ і прямої роботи з Win32 API дозволив розробникам досягти максимальної швидкодії та стабільності, що особливо важливо при роботі з великими файлами або складними кодовими базами. Інтерфейс Notepad++ багатомовний, включаючи українську мову.

Основні можливості Notepad++

  • Підсвітка синтаксису тексту залежно від мови програмування, режим якої може налаштувати користувач;
  • Можливість згортання блоків згідно з синтаксисом мови програмування;
  • WYSIWYG (друкуєш і отримуєш те, що бачиш на екрані);
  • Автозавершення слова, що набирається;
  • Одночасна робота з безліччю документів;
  • Підтримка регулярних виразів для пошуку й заміни;
  • Повна підтримка перетягування фрагментів тексту;
  • Динамічна зміна вікон перегляду;
  • Автоматичне визначення стану файлу;
  • Збільшення і зменшення;
  • Підтримка великої кількості мов;
  • Підтримка різноманітних тем інтерфейсу;
  • Нотатки;
  • Плагіни;
  • Запис макроса і його виконання.

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

  • Шаблони тексту (сніпети), що вводяться за допомогою скорочень (плаґін SnippetPlus);
  • FTP–менеджер (плаґін NppFTP);
  • Hex–редактор;
  • Автозбереження (при втраті фокусу через певний проміжок часу);
  • Перевірка орфографії (з використанням GNU Aspell);
  • Симетричне й асиметричне шифрування тексту (при встановленні плаґіна NppDarkCrypt);
  • Підтримка Zen Coding;
  • Підтримка автоматизації за допомогою скриптів мовами Python, JScript, Lua та іншими;
  • Підтримка збереження до OneDrive і Dropbox.

Підсвічування синтаксису

ActionScript, Ада, ASP, ASCII–графіка, Асемблер, AutoIt, BAT, C, C#, C++, Caml, CSS, CoffeeScript (з версії 6.5), Doxygen, Фортран, HTML, Inno Setup, Haskell, Java, JavaScript, KiXtart, Lisp, Lua, Make, MATLAB, NSIS, Objective–C, Pascal, Perl, PHP, PostScript, Python, Ruby, Scheme, UNIX Shell, Smalltalk, SQL, Tcl, TeX, Verilog, VHDL, Visual Basic, VBScript, XML.

Крім того, користувачі можуть задавати власні правила підсвітки та згортання для інших мов.

Історія

Від JEXT до першого релізу (2003)

Розробка Notepad++ розпочалася у вересні 2003 року Дон Хо, випускником факультету інформатики Паризького університету Дідро. На той час Дон Хо працював у компанії, де використовував редактор JEXT — Java–орієнтований текстовий редактор. Проте продуктивність JEXT не відповідала вимогам до швидкості та ефективності, що спонукало розробника створити власний редактор на C++ із використанням Scintilla. Ідея була відхилена керівництвом компанії, тому Дон Хо розпочав розробку у вільний від роботи час.

Перший реліз Notepad++ відбувся 25 листопада 2003 року на платформі SourceForge. Програма була орієнтована виключно на Windows, оскільки автор відмовився від ідеї використання wxWidgets для кросплатформеності на користь максимальної оптимізації під Win32 API. Вже на ранньому етапі редактор вирізнявся високою швидкодією, компактністю та підтримкою розширень через плагіни.

2003—2010

Після першого релізу Notepad++ швидко здобув популярність серед розробників завдяки відкритому коду, багатофункціональності та підтримці численних мов програмування. Протягом 2003—2010 років редактор активно розвивався на платформі SourceForge, де кількість завантажень перевищила 28 мільйонів, а сам проєкт двічі отримував нагороду SourceForge Community Choice Award як найкращий інструмент для розробників.

У цей період було впроваджено низку ключових функцій: багатовіконний інтерфейс, підсвічування синтаксису, згортання коду, підтримку регулярних виразів для пошуку та заміни, макроси, автодоповнення, а також розширення через плагіни. Важливою особливістю стала підтримка різних кодувань (ANSI, UTF–8, UCS–2), що дозволило працювати з широким спектром текстових та кодових файлів.

У 2010 році через обмеження доступу до SourceForge для користувачів із низки країн (Куба, Іран, Північна Корея, Судан, Сирія) відповідно до законодавства США, проєкт частково перемістився на незалежний хостинг TuxFamily у Франції, що було принциповим кроком для збереження відкритості та доступності редактора.

2011—2015

У 2011 році Notepad++ був визнаний Lifehacker як «Найкращий текстовий редактор для програмування Windows», а у 2014 році отримав 40 % голосів у рейтингу «Most Popular Text Editor» серед 16 294 респондентів. У 2015 році, згідно з опитуванням Stack Overflow, Notepad++ став найпопулярнішим текстовим редактором серед розробників із часткою 34,7 % щоденного використання, а у 2016 році цей показник зріс до 35,6 %.

У цей період проєкт остаточно залишив SourceForge через інциденти з підміною інсталяційних файлів сторонніми особами та перемістив репозиторій на GitHub, а форум — на NodeBB. Це дозволило зберегти контроль над розповсюдженням редактора та забезпечити прозорість розробки. У 2015 році також було впроваджено підтримку нових мов, розширено функціонал пошуку, вдосконалено систему плагінів та підвищено стабільність роботи з великими файлами.

2016—2026

З 2016 року Notepad++ продовжує активний розвиток, зберігаючи лідерські позиції серед редакторів коду для Windows. У 2016 році з'явилася 64–бітна версія (v7.0), що дозволило працювати з великими файлами та розширити підтримку сучасних архітектур. У 2021 році (v8.0) додано підтримку ARM64, офіційний темний режим, Fluent UI–іконки та режим «Distraction Free» для повноекранного редагування без відволікаючих елементів інтерфейсу.

У 2025 році Notepad++ в опитуванні Stack Overflow посів третє місце серед використаних IDE розробниками з часткою 27,4 %.

У 2025—2026 роках особливу увагу було приділено питанням кібербезпеки: після Supply Chain Attack через gup.exe (WinGup) у версіях 8.8.8–8.9.2 впроваджено перевірку цифрових підписів, сертифікатів та підписування XML–маніфестів оновлень. Також було вдосконалено механізми захисту від атак на рівні інфраструктури та посилено вимоги до хостинг–провайдерів.

Історія версій

Notepad++ 1.0 (2003)

Перший реліз Notepad++ (1.0) відбувся 24 листопада 2003 року. Програма була написана на C++ із використанням Scintilla, підтримувала базові функції підсвічування синтаксису, багатовіконний інтерфейс, макроси та роботу з різними кодуваннями. Основний акцент робився на швидкодії, компактності та розширюваності через плагіни. Розмір інсталяційного файлу становив лише 387,9 КБ, що було значним досягненням для того часу.

Notepad++ 6.0 (2012)

Версія 6.0, випущена 21 березня 2012 року, стала важливою віхою в розвитку редактора. Було впроваджено підтримку PCRE (Perl Compatible Regular Expressions), що значно розширило можливості пошуку та заміни. Додано функції Document Map, Function List, Document Switcher, а також оптимізовано завантаження великих файлів (до 500 МБ). У комплекті з інсталятором постачалося п'ять плагінів, зокрема spell checker, plugin manager, converter, FTP–плагін і плагін експорту документів.

Notepad++ 7.0 (2016)

У версії 7.0 (21 вересня 2016 року) з'явилася 64–бітна збірка, що дозволило працювати з великими файлами та сучасними системами. Було усунуто вразливість DLL Hijacking шляхом оновлення NSIS до v3.0, покращено автооновлення, додано нові варіанти зміни регістру, розширено функціонал Shortcut Mapper, впроваджено підтримку Ruby у Function List, а також додано нові команди для роботи з файлами та вкладками.

Notepad++ 8.0 (2021)

Версія 8.0 (7 червня 2021 року) принесла низку візуальних і функціональних оновлень: офіційний темний режим, Fluent UI–іконки, режим «Distraction Free», підтримку ARM64, можливість збірки з Scintilla static lib і Boost RegExpr headers, нові API для темного режиму, розширені налаштування пошуку та автодоповнення, оптимізацію роботи з великими файлами та вдосконалення у функціоналі пошуку та заміни. Також було видалено Microsoft Bing із переліку пошукових систем через цензурування результатів.

Notepad++ 8.8.8 (2025)

У версії 8.8.8 (8 листопада 2025 року) основний акцент зроблено на кібербезпеці: впроваджено захист від викрадення оновлень (Supply Chain Attack), додано MSI–інсталятор для корпоративного розгортання, виправлено баги багатовиділення, оптимізовано збереження сесій, додано обмеження довжини міток вкладок, підтримку масштабування тексту, покращено роботу з кодуваннями та автодоповненням для Rust. У комплекті з інсталятором постачався WinGUp v5.3.7 із посиленими механізмами перевірки оновлень.

Таблиця ключових версій Notepad++
Версія Дата релізу Ключові зміни та характеристики
1.0 24.11.2003 C++/Scintilla, Win32 API, багатовіконний інтерфейс, макроси, базове підсвічування, розмір 387,9 КБ
6.0 21.03.2012 PCRE, Document Map, Function List, Document Switcher, оптимізація великих файлів, плагіни у комплекті
7.0 21.09.2016 64–бітна збірка, усунення DLL Hijacking, покращення автооновлення, Shortcut Mapper, нові команди для вкладок і файлів
8.0 07.06.2021 ARM64, темний режим, Fluent UI–іконки, Distraction Free Mode, оптимізація пошуку, видалення Bing із пошукових систем
8.8.8 08.11.2025 Supply Chain Attack mitigation, MSI–інсталятор, захист оновлень, оптимізація сесій, масштабування тексту, Rust–покращення

Технічні характеристики

Кодування, перенесення рядків, рендеринг, багатопотоковість

Notepad++ підтримує широкий спектр кодувань: ANSI, UTF–8, UTF–16 (LE/BE), а також автоматичне визначення кодування при відкритті файлів. Редактор дозволяє конвертувати файли між різними кодуваннями, що особливо важливо для роботи з багатомовними проектами. Важливо зазначити, що UCS–2, який раніше використовувався, був замінений на UTF–16, оскільки останній охоплює ширший діапазон символів та є сучасним стандартом для Windows–додатків.

Механізм перенесення рядків (newline) підтримує різні формати: CRLF (Windows), LF (Unix), CR (Mac OS Classic). Користувач може змінювати тип перенесення рядків для окремих файлів або глобально, що забезпечує сумісність із різними платформами та системами контролю версій. У кодуванні UTF–8 символ перенесення рядка ідентичний ASCII (0x0A для LF, 0x0D 0x0A для CRLF).

Рендеринг тексту здійснюється через Scintilla, що забезпечує апаратне прискорення, підтримку згортання коду, багаторівневу підсвічування синтаксису, багатовіконний режим (multi–view), а також можливість масштабування тексту. З версії 8.0 додано підтримку DirectWrite для покращення якості відображення шрифтів та сумісності з сучасними графічними підсистемами Windows.

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

Регулярні вирази та механізми пошуку

Notepad++ підтримує потужний механізм пошуку та заміни з використанням регулярних виразів. Починаючи з версії 6.0, впроваджено підтримку PCRE, що дозволяє використовувати синтаксис, ідентичний Perl, для складних пошукових та замінних операцій. Це значно розширює можливості автоматизації обробки тексту, парсингу логів, рефакторингу коду тощо.

Синтаксис Notepad++
Символ / Вираз Опис елемента Приклад застосування
. Будь–який одиничний символ (крім розриву рядка) а.б знайде «аб», «а1б», «а*б»
[0–9] Будь–яка одна цифра від 0 до 9 Пошук числових значень
\w Будь–яка літера, цифра або символ підкреслення Пошук ідентифікаторів у коді
^ Початок рядка ^Привіт знайде слово лише на початку
$ Кінець рядка !$ знайде знак оклику в кінці речення
* Повторення попереднього символу 0 або більше разів а* знайде "", «а», «аа», «ааа»
\s Будь–який пробільний символ (пробіл, табуляція) Пошук зайвих відступів

Макроси та автоматизація

Редактор підтримує запис, збереження та відтворення макросів — послідовностей дій користувача, які можна автоматично повторювати для прискорення рутинних операцій. Запис макросу здійснюється через меню Macro > Start Recording, після чого всі дії зберігаються у тимчасовий буфер. Збереження макросу дозволяє призначити йому ім'я та комбінацію клавіш для швидкого виклику. Всі збережені макроси зберігаються у файлі shortcuts.xml, який оновлюється при виході з програми. Відтворення макросу можливе як одноразово, так і багаторазово (до кінця файлу або задану кількість разів).

Редагування макросів можливе лише через ручне редагування shortcuts.xml, оскільки вбудованого редактора макросів не передбачено. Важливо враховувати, що макроси чутливі до позиції курсора та можуть працювати відносно поточного положення. Для складніших сценаріїв автоматизації рекомендується використовувати плагіни–скриптовики (Python, Lua, JScript).

Плагіни та екосистема

Архітектура плагінів

Notepad++ має розвинену архітектуру плагінів, що дозволяє значно розширювати функціонал редактора. Плагіни — це динамічні бібліотеки (DLL), які розміщуються у підкаталозі Plugins. Для встановлення плагінів використовується Plugin Admin — вбудований менеджер, що дозволяє переглядати, встановлювати, оновлювати та видаляти плагіни з офіційного списку (nppPluginList). Плагіни можуть бути як офіційними, так і сторонніми, а їх розробка підтримується через шаблони для C++, C#, Delphi та інших мов.

Серед найпопулярніших плагінів: TextFX (розширені текстові трансформації), NppFTP (FTP–клієнт), SnippetPlus (шаблони коду), Hex–редактор, автозбереження, перевірка орфографії, Zen Coding тощо. Плагіни можуть взаємодіяти з ядром редактора через API, підключати власні діалоги, додавати нові типи підсвічування, розширювати функціонал пошуку, автоматизації, інтеграції з системами контролю версій та CI/CD.

З версії 8.4 впроваджено підтримку ILexer5 для розробки зовнішніх лексерів, що дозволяє створювати плагіни для підсвічування нових мов із власними XML–файлами стилів. Безпека плагінів забезпечується підписуванням списку плагінів та перевіркою сертифікатів при встановленні через Plugin Admin.

Інтернаціоналізація

Notepad++ підтримує інтерфейс на понад 90 мовах, включаючи українську, російську, англійську, німецьку, французьку, японську, китайську та багато інших. Локалізація здійснюється через XML–файли у каталозі localization, які можна редагувати або створювати нові на основі english.xml. Вибір мови здійснюється через меню Settings > Preferences > General > Localization. Для кожної мови передбачено підтримку гарячих клавіш (accelerators), що забезпечує зручність роботи для користувачів різних країн.

Архітектура та реалізація

Редактор реалізований як Win32–додаток із використанням C, STL та прямого доступу до API Windows. Це дозволяє досягти максимальної продуктивності, мінімізувати розмір виконуваного файлу та забезпечити сумісність із різними версіями Windows (IA–32, x86–64, AArch64). Збірка здійснюється через Visual Studio або MinGW, а інтеграція Scintilla відбувається як статична або динамічна бібліотека. Для рендерингу тексту використовується DirectWrite (з версії 8.0), що покращує якість відображення шрифтів на сучасних дисплеях.

Ліцензування та хостинг

Notepad++ спочатку розповсюджувався під ліцензією GPL 2.0, а з 2021 року — під GPL 3.0. Перехід на GPLv3 був зумовлений необхідністю захисту від тивоізації, патентних ризиків та забезпечення максимальної свободи користувачів і розробників. Ліцензія гарантує право на використання, модифікацію та розповсюдження програми за умови збереження відкритості коду та дотримання умов copyleft.

Проєкт спочатку розміщувався на SourceForge (2003—2010), потім частково перемістився на TuxFamily (2010—2015) через обмеження доступу для низки країн. У 2015 році, після інцидентів із підміною інсталяційних файлів, репозиторій остаточно перенесено на GitHub, а форум — на NodeBB. У 2019 році офіційний сайт notepad–plus–plus.org було перенесено на Hostinger (Литва) для підвищення безпеки та незалежності від юрисдикції США.

Кібербезпека

Атака через gup.exe (WinGup), Supply Chain Attack

У 2025 році було зафіксовано Supply Chain Attack на інфраструктуру оновлень Notepad++. Зловмисники, імовірно пов'язані з APT31 (Китай), скомпрометували сервери хостинг–провайдера, що дозволило їм перехоплювати та підміняти оновлення для користувачів у Східній Азії. Атака тривала з червня по грудень 2025 року, причому навіть після втрати прямого доступу до серверів у вересні, зловмисники зберігали облікові дані для внутрішніх сервісів до грудня.

Технічно атака здійснювалася через підміну відповіді на запит до оновлень, що дозволяло перенаправляти користувачів на шкідливі сервери. Зловмисники використовували кілька ланцюжків зараження: через запуск шкідливого update.exe, який збирав системну інформацію, завантажував її на temp.sh, а потім завантажував та виконував другий етап — Cobalt Strike Beacon або Chrysalis backdoor. Виявлено три основні ланцюжки зараження, які змінювалися щомісяця для уникнення детектування. Атака була таргетована на окремі організації та користувачів у В'єтнамі, Сальвадорі, Австралії, на Філіппінах.

Заходи пом'якшення та захищені хостинги

Після виявлення атаки було проведено міграцію сайту на нового хостинг–провайдера з посиленими заходами безпеки. У версіях 8.8.8–8.9.2 впроваджено перевірку цифрових підписів і сертифікатів для інсталяторів, підписування XML–маніфестів (XMLDSig), а також обмеження джерел оновлень лише до GitHub. Всі виявлені вразливості було усунуто, а користувачам рекомендовано оновитися до версії 8.9.1 або новішої вручну через офіційний сайт. Інцидент став прикладом сучасної Supply Chain Attack на open source–проекти та підкреслив важливість багаторівневого захисту інфраструктури оновлень.

Соціально–політична позиція

Notepad++ відомий не лише як інструмент для розробників, а й як платформа для вираження соціально–політичної позиції автора. Дон Хо регулярно використовує кодові назви релізів для підтримки прав людини, свободи слова та протесту проти цензури. Серед найвідоміших релізів:

Політичні меседжі в релізах неодноразово викликали критику, бойкоти, DDoS–атаки та спроби цензури з боку різних держав і груп. Автор принципово відстоює право на свободу слова та відкритість, навіть попри ризики для проєкту та користувачів. Дискусії щодо доцільності політичних меседжів у відкритому ПЗ тривають у спільноті, проте Дон Хо послідовно дотримується своєї позиції.

Спільнота та екосистема

Notepad++ має потужну спільноту користувачів і розробників, яка активно бере участь у розвитку проєкту через форуми (NodeBB), GitHub, офіційний сайт та систему плагінів. Форум NodeBB використовується для обговорення багів, пропозицій, обміну макросами, плагінами та локалізаціями. GitHub є основною платформою для розробки, трекінгу багів, pull request–ів та обговорення змін у коді.

Згідно з опитуваннями Stack Overflow, Notepad++ стабільно входить до трійки найпопулярніших текстових редакторів серед розробників у світі (34,7 % у 2015, 35,6 % у 2016). У 2014 році 40 % читачів Lifehacker назвали його улюбленим редактором. На SourceForge кількість завантажень перевищила 28 мільйонів, а на GitHub проєкт має понад 27 тисяч зірок. Платформа PortableApps забезпечує портативність редактора для роботи з USB–носіїв, хмарних сховищ та різних ПК без інсталяції.

Екосистема плагінів налічує понад 140 розширень, що охоплюють автоматизацію, інтеграцію з системами контролю версій, FTP, автозбереження, підсвічування нових мов, шифрування, автозаповнення, роботу з великими файлами тощо. Офіційний список плагінів (nppPluginList) підписується для захисту від підміни та атак на ланцюжок постачання.

Великоднє яйце

Якщо натиснути клавішу F1 або відкрити діалогове вікно «Про програму», поки обраний текст містить ім'я, створюється новий документ і за допомогою імітації друку вводиться цитата від певної людини. Серед імен, які викликають це пасхальне яйце, є Білл Гейтс, Лінус Торвальдс, Браян Керніган і Дарт Вейдер. Текст цитати обирається випадковим чином.

Читати далі

49 мовами

Текст із Вікіпедії, CC BY-SA 4.0 · Стаття-джерело