Resources
Source Code Repository Access
Your pull requests will be welcome. However, they are not always accepted for diverse reasons. Here are the guidelines for your pull requests: https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/CONTRIBUTING.md
Release Key
Notepad++ packages and GitHub commits are signed using the Release Key, which has the following characteristics:
- Signer: Notepad++
- E-mail: [email protected]
- Key ID: 0x8D84F46E
- Key fingerprint: 14BC E436 2749 B2B5 1F8C 7122 6C42 9F1D 8D84 F46E
- Key type: RSA 4096 / 4096
- Created: 2019-03-11
- Expiries: 2024-03-11
Obtaining and validating Release Key
To make signature verification possible, you need to obtain a copy of our Release Key, or you can get it from Notepad++’s GitHub page.
Notepad++ ECCN
Notepad++ is “Made in Worldwide” and distributed outside of USA territory (both source code and binary) so there shouldn’t be ECCN issue. However you may need Notepad++ ECCN number to conforme to US law, here it is: EAR99
VPAT for Notepad++
According US law, you may need Voluntary Product Accessibility Template file for Notepad++ if you are in USA territory.
Binary Translations
From Binary Translations page you could get the language you need.
Plugins
From the v3.1, Notepad++ has the extension capacity — the plugin system. Please see Plugins HOWTO to learn how to install a plugin or/and how to develop a plugin.
A list of plugins is maintained by Notepad++ community, used by Plugin Admin.
If you can not find the plugin you need, just make your own.
User Defined Language files
For some reasons that some languages are not supported by Notepad++, User Language Define System can help you out in this case. This system allows user to define his own language : not only the syntax highlighting keywords definition, but also the syntax folding keywords definition, comment keywords definition and the operators definition.
You can define your language via User Language Define Dialog. However, the language you need may be already defined by someone-else in this User Defined Languages Collection.
Notepad Replacement
This is one of the most asked question in the forums. Check here to have the solution.
Notepad++ stores
You can find Notepad++ thong in the following online shops, as well mugs and apparels.
Windows notepad source code
What is Notepad++ ?
Notepad++ is a free (free as in both «free speech» and «free beer») source code editor and Notepad replacement that supports several programming languages and natural languages. Running in the MS Windows environment, its use is governed by GPL License.
See the Notepad++ official site for more information.
Notepad++ Release Key
Since the release of version 7.6.5 Notepad++ is signed using GPG with the following key:
- Signer: Notepad++
- E-mail:don.h@free.fr
- Key ID: 0x8D84F46E
- Key fingerprint: 14BC E436 2749 B2B5 1F8C 7122 6C42 9F1D 8D84 F46E
- Key type: RSA 4096/4096
- Created: 2019-03-11
- Expiries: 2024-03-11
All the Windows systems still supported by Microsoft are supported by Notepad++. However, not all Notepad++ users can or want to use the newest system. Here is the Supported systems information you may need in case you are one of them.
Please follow build guide to build Notepad++ from source.
Code contribution is welcome. Here are some rules that your should follow to make your contribution accepted easily.
Windows notepad source code
A modern, lightweight text editor with a minimalist design.
What is Notepads and why do I care?
I have been waiting long enough for a modern Windows 10 notepad app to come before I decided to create one myself. Don’t get me wrong, Notepad++, VS Code, and Sublime are great text editors. I have used them all and I will continue to use them in the future. However, they are either too heavy or look less appealing. There are times that I just wanted to use Windows notepad for things like writing notes or editing config files. So I decided to create a win32 notepad replacement here and try to give it a modern look and feel. Most importantly, it has to be blazingly fast and appeal to everyone.
So here comes the “Notepads” 🎉 (s stands for Sets).
- Fluent design with a built-in tab system.
- Blazingly fast and lightweight.
- Launch from the command line or PowerShell by typing: notepads or notepads %FilePath% .
- Multi-line handwriting support.
- Built-in Markdown live preview.
- Built-in diff viewer (preview your changes).
- Session snapshot and multi-instances.
******* 📣 Notepads App is still under active development. *******
- Ctrl+N/T to create new tab.
- Ctrl+(Shift)+Tab to switch between tabs.
- Ctrl+Num(1-9) to quickly switch to specified tab.
- Ctrl+»+»/»-» for zooming. Ctrl+»0″ to reset zooming to default.
- Ctrl+L/R to change text flow direction. (LTR/RTL)
- Alt+P to toggle preview split view for Markdown file.
- Alt+D to toggle side-by-side diff viewer.
Platform limitations (UWP):
- You won’t be able to save files to system folders due to UWP restriction (windows, system32, etc.).
- You cannot associate potentially harmful file types (.cmd, .bat etc.) with Notepads.
- Notepads does not work well with large files; the file size limit is set to 1MB for now. I will add large file support later.
Notepads is available in Microsoft Store. You can get the latest version of Notepads here for free: Microsoft Store Link.
You can also use Windows Package Manager to install notepads:
Disclaimer and Privacy statement:
To be 100% transparent:
- Notepads does not and will never collect user information in terms of user privacy.
- I will not track your IP.
- I will not record your typings or read any of your files created in Notepads including file name and file path.
- No typings or files will be sent to me or third parties.
I am using analytics service «AppCenter» to collect basic usage data plus some minimum telemetry to help me debug runtime errors. Here is the thread I made clear on this topic: https://github.com/JasonStein/Notepads/issues/334
Feel free to review the source code or build your own version of Notepads since it is 100% open sourced.
You might notice that I work for Microsoft but Notepads is my personal project that I accomplish during free time (to empower every person and every organization on the planet to achieve more 😃 ). I do not work for the Windows team, nor do I work for a Microsoft UX/App team. I am not expert on creating Windows apps either. I learned how to code UWP as soon as I started this project, so don’t put too much hope on me or treat it as a project sponsored by Microsoft.
- How to contribute?
- Notepads is free and open source, if you like my work, please consider:
- Star this project on GitHub
- Leave me a review here
Dependencies and References:
Yi Zhou — App icon designer, Notepads App Icon (old) is greatly inspired by the new icon for Windows Terminal.
Mahmoud Qurashy — App icon and file icon(s) designer, creator of the new Notepads App Icon.
Alexandru Sterpu — App Tester, who helped me a lot during preview/beta testing.
Notepads CI/CD pipeline: Built with ❤ by Pipeline Foundation
Windows notepad source code
Notepad3 is a fast and light-weight Scintilla-based text editor with syntax highlighting. It has a small memory footprint, but is powerful enough to handle most programming jobs. Download Notepad3 here.
Notepad3 is based on code from Florian Balmer’s Notepad2 and XhmikosR’s Notepad2-mod. MiniPath is based on code from Florian Balmer’s metapath.
- Notepad3/RC download page — https://www.rizonesoft.com/downloads/notepad3
- Latest changelog (release notes) — https://www.rizonesoft.com/downloads/notepad3/update
- Notepad3 changelog (all versions/builds) — Notepad3 — Full Changelog
- Notepad3 Documentation — https://www.rizonesoft.com/documents/notepad3
- GET IN TOUCH
- Premium Support — On Rizonesoft, support is free and we will assist you the best we can. Please be patient when contacting us; there are mainly volunteers working on Rizonesoft projects and time is a precious commodity.
Changes compared to Flo’s official Notepad2 (made in Notepad2-mod):
- Code folding
- Support for bookmarks
- Option to mark all occurrences of a word
- Updated Scintilla component
- Word auto-completion
- Syntax highlighting support for AutoHotkey (AHK), AutoIt3, AviSynth, Bash, CMake, CoffeeScript, Inno Setup, LaTeX, Lua, Markdown, NSIS, Ruby, Tcl, YAML and VHDL scripts.
- Improved support for NFO ANSI art
- Other various minor changes and tweaks
Changes compared to the Notepad2-mod fork:
- Additional syntax highlighting support for Awk, D, golang, MATLAB
- State of the art Regular Expression search engine (Onigmu)
- New toolbar icons based on Yusuke Kamiyaman’s Fugue Icons (Purchased by Rizonesoft)
- Hyperlink Hotspot highlighting (single click Open in Browser (Ctrl) / Load in Editor (Alt)
- Syntax highlighting support for D Source Script, Go Source Script, JSON, Makefiles, MATLAB, Nim Source Code, Power Shell Script, Resource Script, Shell Script.
- New program icon and other small cosmetic changes
- In-App support for AES-256 Rijndael encryption/decryption of files (incl. external commandline tool for batch processing)
- Virtual Space rectangular selection box (Alt-Key down)
- High-DPI awareness, including high definition toolbar icons
- Undo/Redo preserves selection
- File History preserves Caret position (optional) and remembers encoding of file
- Accelerated word navigation
- Preserve caret position of items in file history
- Count occurrences of a marked selection or word
- Count and Mark occurrences of matching search/find expression
- Visual Studio style copy/paste current line (no selection)
- Insert GUIDs
- Dropped support for Windows XP version
- Other various minor changes, tweaks and bugfixes
Supported Operating Systems:
- Windows 7, 8, 8.1 and 10 both 32-bit and 64-bit
Seen on Nsane Forums: Notepad3 is an advanced text editor. , a review of Notepad3 posted by the moderator Karston at nsane.forums.
To be correct and complete, this Notepad3’s review is written on 2020-08-11 by Ashwin and posted on gHacks.
Notepad3 Settings (Notepad3.ini)
[Notepad3]
This section can be used to redirect to a settings file which should be used by Notepad3. If a non elevated user is not allowed to write to the program directory of Notepad3.exe, the side-by-side Notepad3.ini can point to a place, where the user is allowed to write his settings, for example :
or a to have user specific settings:
[Settings]
This settings are read and written by Notepad3’s user interface. For examples all Menu ? Settings will go here.
[Settings2]
This section offers some advanced Notepad3 program settings, and can only be edited manually. Press Ctrl+F7 to open the Notepad3 ini-file. Most changes only take effect upon restarting Notepad3.
The default value for the already supported languages is defined by the: “OS language setting”.
The timeout (in milliseconds) to wait before automatically reloading modified files.
- The default value of 2000 ms usually prevents read/write conflicts.
Specify the short/long date and time formats. This is the format parameter passed to the strftime() function. Note that the locale will be set to English (because of the English Visual C++ Run-time Library used by Notepad3).
- (-> $Date:[^$]+$) (Find-Pattern to Update Stamps)
- (-> \$Date:[^\$]+\$ | $Date: %Y/%m/%d %H:%M:%S $
- (-> $Date: %s $) (Print format should fit to TimeStampRegEx)
This parameter is used as a regex pattern to match time-stamps which will be updated to current date-time by Shift+F5 , e.g. $Date: 2018/04/26 00:52:39 $
- Default DateTime formats are:
- SHORT: [Settings2] DateTimeFormat= (empty) — Notepad3’s language locale short ‘ ‘ format is used
- LONG: [Settings2] DateTimeLongFormat= (empty) — Notepad3’s language locale long ‘ ‘ format is used
- TIME_STAMP: [Settings2] TimeStampFormat= (empty) — «$Date: %s $» where ‘%s’ is replaced by time/date in DateTimeFormat . E.g. [Settings2] TimeStampFormat=#TimeStamp=2020-07-21 16:02:23 #
- All DateTime formats accept the strftime() format string. Addon: TimeStampFormat accepts ‘%s’ (which is no valid strftime() formatting code) — a placeholder for a DateTimeFormat formatted current date/time string. (mixing of strftime() and ‘%s’ is not allowed).
- If you define your own TimeStampFormat , you should define the corresponding TimeStampRegEx regular expression pattern accordingly (for our example: [Settings2] TimeStampRegEx=»#TimeStamp=[^#]+#» ), so that Update Timestamps operation can find and update them correctly.
- Additional Menu Point: Insert Current Timestamp.
Specify the default directory for the open and save dialogs, used if no file is opened.
- Path-names can be relative to the Notepad3 program directory.
Specify the default extension for saved files (omit the leading dot, just like txt or html).
This items are managed by Notepad3. ( Menu->View->Position->Save as Default Position ) (Will set current window position as «Default Position» — can be recalled by Ctrl+Shift+P Hotkey)
Specify the path of an external program that is launched when pressing the Browse toolbar button. Defaults to minipath.exe , which is the file browser plugin.
You can specify additional command line switches, and the file currently opened in Notepad3 will be appended as the last command line parameter.
Note: Due to special treatment of quotes by the Win32 ini-file APIs, pathnames with spaces need to be quadruple-quoted («»path to/file.exe»»), but only double-quoted if there’s additional command line arguments («path to/file.exe» /arg).
On the other hand, our preferred file browser is minipath.exe (Menu->File->Browse. Ctrl+M) + Toolbar-Button.
If you don’t like it, you can configure e.g.
- [Settings2] filebrowser.exe=explorer.exe (system’s file explorer), or
- [Settings2] filebrowser.exe=Explorer++.exe (https://explorerplusplus.com/) (side-by-side Notepad3), or
- [Settings2] filebrowser.exe=Q-Dir_x64+.exe (https://www.softwareok.de/?seite=Freeware/Q-Dir/) (side-by-side Notepad3)
We have integrated of a Powerful External Tool called grepWinNP3. grepWinNP3 is a simple search and replace tool which can use regular expressions to do its job.
This allows to do much more powerful searches and replaces in Files.
grepWinNP3 can be launched:
- from «File —> Launch —> Search in Files»
- or from «Edit —> Search —> Search in Files»
- or simply with » Ctrl+Shift+F «
The interval (in milliseconds) to check for external modification of the currently opened file.
Specify filters for the open and save dialogs
The size limit, in megabytes, to display a warning message for large files.
- A value of 0 disables the warning.
Control if Notepad2 should allow multiple files on the command line (set to 1). The default behavior is to accept only a single file, without quoted spaces, like Windows Notepad (set to 0). The command line switches + and — can be used to override this setting on the fly, and the /z command-line switch has the same effect as the — switch.
Set to 1 to disable simple language detection for cgi and fcgi files.
NoCopyLineOnEmptySelection=1 to avoid the copy line ( Ctrl+C ) on empty selection.
NoCutLineOnEmptySelection=1 to avoid the cut line ( Ctrl+X ) on empty selection.
Set to 1 to disable fading of hidden objects in file lists (such as Favorites, etc.).
Set to 1 to disable file variable parsing. Encoding tag parsing can be disabled in the Menu ? File ? Encoding ? Default dialog box.
Notepad3 can parse a few of the Emacs variables that can be used in source code files. The first 512 bytes of a file (and, if nothing is found, also the last 512 bytes) are checked for the following constructs (can be manually disabled in the ini-file, or the File, Encoding, Default dialog box, respectively):
coding : Serves as a file encoding tag. Details about using encoding tags are outlined in the Notepad2 Encoding Tutorial.
mode : Indicates the syntax scheme to be used, and is either the name of a scheme, or a file name extension. tab-width :
c-basic-indent : Denote tab and indentation settings.
indent-tabs-mode : Determines whether to insert tabs as spaces (nil, false or 0) or not (true or 1).
c-tab-always-indent : Configures whether the tab key re-formats indenting white-space (true or 1) or not (nil, false or 0).
fill-column : Sets the desired limit for long lines (but does not automatically display the visual marker).
truncate-lines : Controls word wrap (enable: nil, false or 0; disable: true or 1).
enable-local-variables : Disables file variable parsing (nil, false or 0), but keeps evaluating encoding tags.
To bypass both file variable and encoding tag parsing, reload the file with Alt+F8. Adapt the settings mentioned above to permanently turn off file variables and encoding tags.
Set to 1 to disable simple HTML/XML detection for files without extensions.
If set to 1, recent files and other path settings referring to the My Documents directory tree are stored relative to My Documents . This enhances USB stick portability between different versions of Windows, which are using different locations for My Documents . This setting has no effect if Notepad3.exe itself is located inside My Documents (or a sub-directory thereof).
- The default is 1 (enabled) if RelativeFileMRU is enabled, and 0 (disabled) otherwise.
Opacity level (in %) of the Notepad3 window in transparent mode.
Opacity level (in %) of the Find/Replace window in transparent mode.
Set to 0 to disable recent files on the same drive or network share as Notepad3.exe being saved with relative path-names.
- The default is 1 (enabled).
This items are managed by Notepad3. ( Menu->Settings->Window->Reuse Window Ctrl+Shift+L )
- If set, another started Notepad3 instance will try to give control to the currently opened Window and quit.
Set to 1 to prevent indentation guides from jumping across empty lines.
This items are managed by Notepad3.
Application User Model IDs (AppUserModelIDs) are used extensively by the taskbar in Windows 7 and later systems to associate processes, files, and windows with a particular application. In some cases, it is sufficient to rely on the internal AppUserModelID assigned to a process by the system. However, an application that owns multiple processes or an application that is running in a host process might need to explicitly identify itself so that it can group its otherwise disparate windows under a single taskbar button and control the contents of that application’s Jump List.
Most recently used (MRU) source lists are resident on the user’s computer and contain information about source paths used in previous installations. This information can be used when prompting the user for a source path. Control system MRU, task-bar and jump list behavior. See Replacing Windows Notepad for detailed explanations.
This items are managed by Notepad3.
- Menu->View->Position->Sticky Window Position (Will remember current window position on restart, instead of last closed position (save on exit))
UseOldStyleBraceMatching=1 to switch back to (not recommended) old style behavior
WebTmpl1MenuName=Open Web Action 1
`WebTmpl2MenuName=Open Web Action 2
Put in here all ASCII chars which should be word delimiter in case of «Accelerated Word Navigation».
Is set automatically for CJK input languages (GetACP()).
If you define your own character-set in AutoCompleteWordCharSet, Auto-Completion word list is limited to words composed of these chars only (case insensitive).)
New configuration .ini-file: [Settings2] AutoCompleteFillUpChars= To get the «Enter» completion behavior back, define: [Settings2] AutoCompleteFillUpChars=\r\n I you like to allow more «fill-up» characters (accept completion item), just add them:
- e.g. [Settings2] AutoCompleteFillUpChars=\r\n[(. (will accept completion item & adds the char).
It will be appended/removed to the comment tag on line comment block toggle. If the string contains spaces, you have to double-quote it,