======================================================================= = = = = = Notepad3 - light-weight Scintilla-based text editor for Windows = = = = (c) Rizonesoft 2008-2020 = = https://rizonesoft.com = = = = forked from Notepad2-mod = = maintained by XhmikosR = = https://xhmikosr.github.io/notepad2-mod = = based on: = = Notepad2 4.2.25 = = (c) Florian Balmer 2004-2011 = = http://www.flos-freeware.ch = = = = = ======================================================================= 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. Changes in Notepad3 compared to original Notepad2 + Notepad3: - Restore selection on undo/redo operations - Text file encryption/decryption support - Improved RegExp search n' replace engine (multiline support) - Syntax highlighting support for MATLAB - New program icon and other small cosmetic changes - New toolbar icons based on Yusuke Kamiyaman's Fugue Icons Purchased by Rizonesoft - Countinuously updated Scintilla component - Other various minor changes and tweaks . Accelerated word navigation . Scitilla's Direct Write support . improved encoding and codepage handling . Insert GUID + 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, AutoIt3, AviSynth, Bash, CMake, CoffeeScript, Inno Setup, LaTeX, Lua, Markdown, NSIS, Ruby, Tcl, YAML and VHDL scripts - Improved support for NFO ANSI art - Support for replacing Windows Notepad using a clean, unintrusive registry-based method Changes in MiniPath compared to metapath - Project upgraded to Visual C++ 2017 - 64-bit version - New toolbar icons based on Yusuke Kamiyaman's Fugue Icons Purchased by Rizonesoft - Installation bundled with Notepad3 - Minor cosmetic changes Supported Operating Systems Windows 7, 8, 8.1, 10 both 32-bit and 64-bit Contributors: - Florian Balmer ( http://www.flos-freeware.ch ) - XhmikosR ( http://xhmikosr.github.io/notepad2-mod/ ) - Kai Liu ( http://code.kliu.org/misc/notepad2/ ) - RL Vision (https://www.rlvision.com/notepad2/about.php ) - Aleksandar Lekov - Bruno Barbieri - RaiKoHoff ( https://github.com/RaiKoHoff ) More information: * Binaries: https://www.rizonesoft.com/downloads/notepad3 * Source code: https://github.com/rizonesoft/Notepad3 * https://github.com/XhmikosR/notepad2-mod * Official Notepad2 website: http://www.flos-freeware.ch/notepad2.html * Code folding usage guide: https://github.com/XhmikosR/notepad2-mod/wiki/Code-Folding-Usage * Kai Liu's website: http://code.kliu.org/misc/notepad2/ * Bookmark Edition website: http://www.rlvision.com/notepad2/about.asp Changed keyboard shortcuts compared to Notepad2: Ctrl+C (no selection) Copy current line. Ctrl+X (no selection) Cut current line. Ctrl+Shift+. Copy GUID to Clipboard. Ctrl+0 Reset zoom. Ctrl+NK_* Toggle transparency F2 Go to next bookmark. Shift+F2 Go to privious bookmark. Ctrl+F2 Set/Reset bookmark. Alt+F2 Clear all. Ctrl+Shift+F Toggle all folds. Ctrl+Alt+F2 Expand selection to next match. Ctrl+Alt+Shift+F2 Expand selection to previous match. Ctrl+Shift+Enter New line with toggled auto indent option. Changed command Line Switches compared to Notepad2: /v Print specified document and leave /vd Print specified document, but open Print dialog before ======================================================================= How to reset the Notepad3 notification messages? ======================================================================= To bring back the notification messages suppressed with the "Don't display this message again" option, load the ini-file (Ctrl+F7) and delete all the values from the [Suppressed Messages] section. To block the "Don't display this message again" option for an individual notification, set the value of the corresponding ini-option to -1. For example, MsgNotFound=-1 ensures the "Text not found" notification message will always be displayed (non suppressable by check-box). ======================================================================= What about the [Settings2] section of the .ini-file? ======================================================================= You may have noticed that the Notepad3 ini-file has a configuration section named [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. New (Notepad3) in [Settings2] SciDirectWriteTech= -1,0,1,2,3 - Scintilla's Direct Write Technology SciFontQuality= 0,1,2,3 - default,none,standard,cleartype (if not defined by 'smoothing:xxx' in Style Schema) SciDirectWriteTech SciFontQuality Specifies Scintilla's internal rendering technology and font quality. SciDirectWriteTech (default is 1): 0: SC_TECHNOLOGY_DEFAULT 1: SC_TECHNOLOGY_DIRECTWRITE 2: SC_TECHNOLOGY_DIRECTWRITERETAIN 3: SC_TECHNOLOGY_DIRECTWRITEDC SciFontQuality (default is 3): 0: SC_EFF_QUALITY_DEFAULT 1: SC_EFF_QUALITY_NON_ANTIALIASED 2: SC_EFF_QUALITY_ANTIALIASED 3: SC_EFF_QUALITY_LCD_OPTIMIZED MarkOccurrencesMaxCount The maximum number of counts for marking occurences, if this option is active. The default is 2000. UseOldStyleBraceMatching Switch back to (not recommended) old style brace matching. The default is 0. Notepad2 already existing settings: ----------------------------------- StickyWindowPosition ReuseWindow SingleFileInstance These items are managed by Notepad3. MultiFileArg Control if Notepad3 should allow multiple files on the command line (set to 1). The default behaviour 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 switch has the same effect as the - switch. OffsetNewWindows Determines whether positions of new windows (opened though Alt+N or Alt+0) should be offset relative to the active Notepad3 window (1). The new default setting for Notepad3 5.0 is to use the same window position as the currently active Notepad3 window (0). RelativeFileMRU Set to 0 to disable recent files on the same drive or network share as Notepad3.exe being saved with relative pathnames. The default is 1 (enabled). PortableMyDocs 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 Windows XP and more recent 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 subdirectory thereof). The default is 1 (enabled) if RelativeFileMRU is enabled, and 0 (disabled) otherwise. DefaultExtension Specify the default extension for saved files (omit the leading dot, just like txt or html). The default extension is 'txt', and a value of (none) needs to specified if no default extension is preferred. To save a file without extension (regardless of the default extension setting), put the filename in double quotes. DefaultDirectory Specify the default directory for the open and save dialogs, used if no file is opened. Pathnames can be relative to the Notepad3 program directory. FileDlgFilters Specify filters for the open and save dialogs (Example: Text Files|*.txt;*.wtx;*.log;*.asc;*.doc;*.diz;*.nfo|All Files|*.*). FileCheckInverval The interval (in milliseconds) to check for external modification of the currently opened file. Defaults to 2000 ms. AutoReloadTimeout The timeout (in milliseconds) to wait before automatically reloading modified files. The default value of 2000 ms usually prevents read/write conflicts. FileLoadWarningMB The size limit, in megabytes, to display a warning message for large files. A value of 0 disables the warning. OpacityLevel Opacity level (in %) of the Notepad3 window in transparent mode. NoFadeHidden Set to 1 to disable fading of hidden objects in file lists (such as Favorites, etc.). ToolbarLook Determines the look of disabled toolbar buttons. 0 means system default (dark-grey and somewhat grainy on Windows Vista and Windows 7; not available on Windows 2000), 1 means colored and faded (the default from Notepad3 4.2.25 on Windows XP and above), and 2 means Windows XP-style light-grey (the default from Notepad3 4.2.25 on Windows 2000; looks better than the system default on Windows Vista and Windows 7). SimpleIndentGuides Set to 1 to prevent indentation guides from jumping across empty lines. NoHTMLGuess Set to 1 to disable simple HTML/XML detection for files without extensions. NoCGIGuess Set to 1 to disable simple language detection for cgi and fcgi files. NoFileVariables Set to 1 to disable file variable parsing. Encoding tag parsing can be disabled in the File, Encoding, Default dialog box. filebrowser.exe Specify the path of an external program that is launched when pressing the Browse toolbar button. Defaults to metapath.exe, which is my file browser plugin (found in the Project Archive). You can specify additional command line switches, and the file currently opened in Notepad3 will be appended as the last command line parameter. To have the current file selected in Windows Explorer when pressing the browse toolbar button, set this entry to "explorer.exe /e,/select,%1". 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). DateTimeShort DateTimeLong 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++ Runtime Library used by Notepad3). TimeStamp Regular expression used to update timestamps. WebTemplate1 WebTemplate2 Undocumented. Dangerous. ☺ ShellAppUserModelID ShellUseSystemMRU Control system MRU, taskbar and jump list behaviour. See Replacing Windows Notepad for detailed explanations. ======================================================================= = = = = = Notepad3's Encryption / Decryption feature = = = = Prototype enduser documentation = = taken from NotepadCrypt (Dave Dyer) = = = = http://www.andromeda.com/people/ddyer/notepad/NotepadCrypt.html = = = = = ======================================================================= NotepadCrypt is a simple text editor which can optionally encrypt the text files it edits. NotepadCrypt was designed to fill a requirement to encrypt configuration files which had to be edited by humans but read by programs, without the hazard that would obviously exist if editing required the human editor to make a temporary unencrypted file. I needed an editor which could read and write an encrypted file, for which the encrypted format was documented and assessable to C and Perl programs. To my surprise, none existed. NotepadCrypt was constructed using open source software, including a low level implementation of AES encryption and Sha256 hashing; and Notepad2 a really nice open source replacement for Notepad. None of this software had to be changed in any substantial way, but the file format and key management had to be designed and implemented to stitch it all together. The requirement that a program be able to read the encrypted file led to a design which included a master key, which I think is extremely useful to anyone using NotepadCrypt to encrypt their own confidential files. Source code: Sha256 hashing implementation (used to convert passphrases to encryption keys) based on an implementation by Christoper Devine. This file is available from many sources on the web. AES encryption, for which there are many open source implementations. Notepad2 editor, which also requires the Scintilla editing widget. NotepadCrypt version 4.2.25 Full Sources: This zip includes the as-modified source code for all of the above, VC.net projects for NotepadCrypt and a simple command line tool which uses the same file format. There are a couple of "extras" - a test program that uses tcsh and a java program that can read NotepadCrypt's file format. Unless you are a programmer, you're probably better off getting the binary only distribution for NotepadCrypt and Notepad3CL Technical Details For NotepadCrypt Overall Design: Sha256 hash is used to convert an ascii pass phrase to a 256 bit encryption key. Pseudorandom data is used as an initialization vector for AES-256 encryption. Optionally, a the encryption key (NOT the passphrase) is encrypted using a second master key, and included in the file header. This master key can be used as an emergency data recovery key, or as a second key to be used by programs to read encrypted files. Overall File Format: Consists of a preamble, the encrypted data, and some padding at the end. Encrypted files start with an 8 byte preamble, the first 4 bytes are a "magic number" to identify the file type (currently 0x04030201) and a 4 byte sub-file type, (currently either 0x00000001 or 0x00000002 if the file has a master key). The next 16 bytes of the preamble are the initialization vector for the AES engine, to be used with the file key. Each file gets a unique 16 bytes of pseudo random noise. Next, for master keyed files, is a 16 byte IV for the master key, followed by a 32 byte block containing the file key, encrypted with the master key, using the master key IV and CBC block chaining. Next, is the actual file data, encrypted using the file key and the IV, and CBC block chaining. Finally, are 1-16 bytes of padding to round out the last AES block. Note that there are never 0 bytes of padding. Passphrase Management: 256 bit encryption keys are generated from the ascii passphrase by passing the passphrase through a SHA256 hash. The passphrase itself is never stored anywhere except in the dynamic memory of the encrypting program. Key management over file generations: If the file is opened using a file passphrase, the passphrase is retained and used as the default for the passphrase dialog. If the file is opened using a master passphrase, the recovered file key is used as the default encryption for new files. This allows an editor who does not know the file passphrase to propogate a file key he could not create. If the file contains a master key, and neither the file or master passphrase is changed, then the retained, master-encrypted file key is copied into the next file generation (It is still valid). This allows an editor who knows only the file passphrase to propogate a master key he could not create. ======================================================================= = = = Notepad3 encryption - prototype enduser documentation = = = ======================================================================= If you open a file which was encrypted by this program, you'll be prompted to supply a passphrase. This passphrase becomes the default to be used when saving files. The passphrase is not the actual encryption key, but is used to generate a 256 bit encryption key called the file key. Master Keys An Encrypted file can optionally contain a copy of its own file key, encrypted with a master key, derived from a master passphrase. This allows anyone who knows the master passphrase to decode any file encrypted with any file key which uses this master key structure. As long as the file passphrase is not changed, the master key can be propogated to new versions of the file without typing the master phrase again. Why use a master key? #1) Data recovery. It is not generally a good idea to use the same passphrase for all files, or to continue using the same passphrase forever. The principle hazard is that if even one key is revealed, every encrypted file you have ever created can also be read. Consequently, different keys should be used for different files, and over time, those keys should change. Since the keys change, they are subject to being lost or forgotton, resulting in lost data - it's still there, but no one can decode it. If you use a master key, and you have misplaced the file key, you can still recover your data. Since master key is not routinely used to decrypt the file, and never needs to be shared with anyone, is is much less likely to be compromised, so it is reasonable for a good master key to be used for a very long time in a lot of different files. Recommendation: Use a master passphrase that will be very hard for anyone to guess and very hard for you to forget. For example: "My Favorite movie is Gone with the Wind" "When it rains in New York, even Chicago is a better place to be" Never tell anyone what it is or write it down. It's an EMERGENCY measure to prevent catastrophic data loss, so treat it that way. Never use it to read or open any encrypted file except for testing, or if you have really lost the file passphrase. #2) Trapdoor access. Sometimes it is desirable to allow a second party to decode the file without knowing the encryption passphrase - a good example is where an automated program is intended to read an encrypted file that is prepared by a human. The program has to have the passphrase or the key embedded in it somewhere. It's possible for a dedicated attacker to find it, but it's much more likely that the source of compromise will be clumsy humans. Allowing the program to use the master key and humans to use the ordinary file keys will allow the routine-use keys to be changed as often as necesary, while still letting the program read the files without being told the new key. Technical Details: (http://www.andromeda.com/people/ddyer/notepad/NotepadCrypt-technotes.html) Passphrase Management: 256 bit encryption keys are geneated from ascii passphrases by passing the passphrase through a SHA256 hash. Passphrases are never Stored anywhere except in the dynamic memory of the encrypting program. Key management over file generations: If the file is opened using a file passphrase, the passphrase is retained and used as the default for the passphrase dialog. If the file is opened using a master passphrase, the recovered file key is used as the default encryption for new files. This allows an editor who does not know the file passphrase to propogate a file key he could not create. If the file contains a master key, and neither the file or master passphrase is changed, then the retained, master-encrypted file key is copied into the next file generation. (It is still valid). This allows an editor who knows only the file passphrase to propogate a master key he could not create. Encrypted files start with an 8 byte preable, the first 4 bytes are a "magic number" to identify the file type (currently 0x04030201) and a 4 byte subfile type, (currently either 0x00000001 or 0x00000002) The next 16 bytes are the initialization vector for the AES engine, to be used with the file key. Each file gets a unique 16 bytes of pseudorandom noise. Next, for master keyed files, is a 16 byte IV for the master key, followed by a 32 byte block containing the file key, encrypted with the master key, using the master key IV and CBC block chaining. Next, is the actual file data, encrypted using the file key and the IV, and CBC block chaining. Finally, are 1-16 bytes of padding to round out the AES block. Note that there are never 0 bytes of padding. A Word about pass phrases and overall security. While this encryption scheme uses high quality AES encryption and quite long 256 bit keys, that is almost irrelevant to the overall security of the system. It's like having a very expensive lock on your front door. Thieves won't go to great lengths to pick your lock; they will simply break a window instead. The weak link in this encryption scheme is YOU and your selection of pass phrases. If your encrypted files are compromised, the most likely, by far, method is the simplest; (1) they ask, you tell. or (2) they find the scrap of paper where you wrote the passphrase or (3) some key logger watches you type the passphrase. The only other likely method is a dictionary-type attack using a program to try lots of possible passphrases. Any short, word-like passphrase CAN be compromised using a few days of computer time. Finally, consider the suitablility of this encryption scheme for your purpose. If your goal is to prevent your wife from reading your girlfriend's phone number in your address book: definitely. If your goal is to prevent disclosure of sensitive data if your laptop is stolen: most likely. If your goal is to prevent fishing by the IRS, should they ever become curious about you: don't count on it. They'll throw you in jail until you tell them the password, or install a key logger and wait for you to tell them voluntarily. If your goal is to keep secrets people who are definitely out to get you, and are willing to shove bamboo splints under you fingernails until you talk: don't even think about it. ======================================================================= = = = = = Notepad2 - light-weight Scintilla-based text editor for Windows = = = = = = Notepad2 4.2.25 = = (c) Florian Balmer 2004-2011 = = http://www.flos-freeware.ch = = = = = ======================================================================= Description Notepad2 is a light-weight, free and open source Notepad-like text editor with syntax highlighting for a few commonly used languages. It's based on the Scintilla source code editing component and works on NT-based versions of Windows. Features - Syntax highlighting: HTML, XML, PHP, ASP (JS, VBS), CSS, JavaScript, VBScript, C/C++, C#, Resource Script, Makefiles, Java, Visual Basic, Pascal, Assembly, SQL, Perl, Python, Configuration Files, Apache Config Files, PowerShell, Batch Files, Diff Files - Drag & drop text editing inside and outside Notepad2 - Basic regular expression search and replace - Useful word, line and block editing shortcuts - Rectangular selection (Alt+Mouse) - Brace matching, auto indent, long line marker, zoom functions - Support for Unicode, UTF-8, Unix and Mac text files - Open shell links - Mostly adjustable Installation and Uninstallation Just put a copy of Notepad2.exe and Notepad2.ini to any directory on your computer. To uninstall Notepad2, simply delete these two files. Notepad2 does not create any registry entries on your computer. The Notepad2 Source Code This package contains the full source code of Notepad2 4.2.25 for Windows. Project files for Visual C++ 7.0 are included. Chances are that Notepad2 can be rebuilt with other development tools, including the free Visual C++ Express Edition, but I haven't tested this. Rebuilding from the Source Code Notepad2 4.2.25 is based on Scintilla 2.24 [1]. [1] http://www.scintilla.org To be able to rebuild Notepad2, the source code of the Scintilla editing component has to be unzipped to the "scintilla" subdirectory of the Notepad2 source code directory. Many of the Scintilla lexing modules are not used by Notepad2. Run LinkLex.js to adapt the list (in "scintilla/src/Catalogue.cxx") and make linking work properly. Creating a Compact Executable Program File Linking to the system CRT slightly improves disk footprint, memory usage and startup because the pages for the system CRT are already loaded and shared in memory. To achieve this, the release version of Notepad2.exe is built using the Windows Driver Kit (WDK) 7.1.0 tools, available as a free download from Microsoft. The appropriate build scripts can be found in the "wdkbuild" subdirectory. Set %WDKBASEDIR% to the directory of the WDK tools on your system. How to add or modify Syntax Schemes The Scintilla documentation has an overview of syntax highlighting, and how to write your own lexing module, in case the language you would like to add is not currently supported by Scintilla. Add your own lexer data structs to the global pLexArray (Styles.c), then adjust NUMLEXERS (Styles.h) to the new total number of syntax schemes. Include the "scintilla/lexers/Lex*.cxx" file required for your language into your project. Ensure the new module is initialized (in "scintilla/src/Catalogue.cxx"), either by manually uncommenting the corresponding LINK_LEXER() macro call, or by updating and re-running LinkLex.js. Keyboard Shortcuts for Notepad2 File Ctrl+N New file. Ctrl+F4 Close file, identical with Ctrl+N. Ctrl+O Open file. F5 Reload file. F8 Recode file. Ctrl+Shift+F Recode file as default encoding. Ctrl+Shift+A Recode file as system default ANSI. Ctrl+Shift+O Recode file as system default OEM. Shift+F8 Recode 7-bit ASCII file as UTF-8. Alt+F8 Reload file without file variable parsing. Ctrl+S Save file. F6 Save file as. Ctrl+F6 Save file copy. Ctrl+P Print file. Alt+H Open recent file. Tools Alt+N Open document in new window. Alt+0 Open new empty window. Ctrl+M Run metapath file browser plugin. Ctrl+L Launch document. Alt+L Open with. Ctrl+R Run command. Favorites Alt+I Open favorites. Alt+K Add to favorites. Alt+F9 Manage favorites. Edit Ctrl+Z Undo. Ctrl+Shift+Z Redo. Alt+Backspace Undo. Ctrl+Y Redo. Ctrl+Shift+Y Undo. Ctrl+X Cut. Shift+Del Cut. Ctrl+C Copy. Alt+C Copy all. Ctrl+E Copy add. Ctrl+V Paste. Shift+Ins Paste. Ctrl+K Swap. Del Clear. Ctrl+A Select all. Alt+Shift+Arrows Rectangular selection. Ctrl+Enter New line with toggled auto indent option. Ctrl+PgUp/PgDn Goto previous/next block. Ctrl+Shift+PgUp/PgDn Select to previous/next block. Char, Word Ctrl+Space Select word (or line). Ctrl+Backspace Delete word before/left. Ctrl+Del Delete word after/right. Ctrl+Tab Insert tabulator. Lines Ctrl+Shift+Space Select line. Ctrl+Shift+Up Move line (block) up. Ctrl+Shift+Down Move line (block) down. Ctrl+D Duplicate line. Ctrl+Shift+X Cut line. Ctrl+Shift+C Copy line. Ctrl+Shift+D Delete line. Ctrl+Shift+Backspace Delete line left. Ctrl+Shift+Del Delete line right. Ctrl+Shift+W Column wrap. Ctrl+I Split lines. Ctrl+J Join lines. Ctrl+Shift+J Join paragraphs. Block Tab Indent selected block. Shift+Tab Unindent selected block. Alt+Q Enclose selection. Alt+D Duplicate selection. Alt+B Pad with spaces. Alt+Z Strip first character. Alt+U Strip last character. Alt+W Strip trailing blanks. Alt+P Compress whitespace. Alt+Y Merge blank lines. Alt+R Remove blank lines. Alt+M Modify lines. Alt+J Align lines. Alt+O Sort lines. Convert Ctrl+Shift+U Make uppercase. Ctrl+U Make lowercase. Ctrl+Alt+U Invert case. Ctrl+Alt+I Title case. Ctrl+Alt+O Sentence case. Ctrl+Shift+S Convert tabs to spaces. Ctrl+Shift+T Convert spaces to tabs. Ctrl+Alt+S Convert indenting tabs to spaces. Ctrl+Alt+T Convert indenting spaces to tabs. Insert Alt+X HTML/XML tag. Ctrl+F8 Encoding identifier. Ctrl+F5 Time/date (short form). Ctrl+Shift+F5 Time/date (long form). Ctrl+F9 Filename. Ctrl+Shift+F9 Path and filename. Special Ctrl+Q Block comment (toggle). Ctrl+Shift+Q Stream comment. Ctrl+Shift+E URL Encode. Ctrl+Shift+R URL Decode. Ctrl+Alt+E Escape C Special Chars. Ctrl+Alt+R Unescape C Special Chars. Ctrl+Alt+X Convert character to hex code. Ctrl+Alt+C Convert hex code to character. Ctrl+B Find matching brace. Ctrl+Shift+B Select to matching brace. F2 Expand selection to next match. Shift+F2 Expand selection to previous match. Ctrl+1 Enclose within ''. Ctrl+2 Enclose within "". Ctrl+3 Enclose within (). Ctrl+4 Enclose within []. Ctrl+5 Enclose within {}. Ctrl+6 Enclose within ``. Shift+F5 Update timestamps. Ctrl+Alt++ Increase number. Ctrl+Alt+- Decrease number. Ctrl+, Jump to selection start. Ctrl+. Jump to selection end. Find, Replace Ctrl+F Find. Alt+F3 Save find text. F3 Find next. Shift+F3 Find previous. Ctrl+F3 Find next word or selection. Ctrl+Shift+F3 Find previous word or selection. Ctrl+H Replace. F4 Replace next. Ctrl+G Jump to line. Syntax scheme, Font F12 Select syntax scheme. Shift+F12 Select 2nd default syntax scheme. Ctrl+F12 Customize syntax schemes. Alt+F12 Select default font. F11 Select default text syntax scheme. Ctrl+F11 Select web source code syntax scheme. Shift+F11 Select XML document syntax scheme. View Ctrl+W Toggle word wrap. Ctrl+Shift+L Show long line marker. Ctrl+Shift+G Show indentation guides. Ctrl+Shift+N Show line numbers. Ctrl+Shift+M Show selection margin. Ctrl+Shift+7 Show wrap symbols. Ctrl+Shift+8 Show whitespace. Ctrl+Shift+9 Show line endings. Ctrl+Shift+V Toggle visual brace matching. Ctrl+Shift+I Highlight current line. Zoom Ctrl++ Zoom in. Ctrl+- Zoom out. Ctrl+/ Reset zoom. Settings Ctrl+T Tab settings. Alt++ Increase limit for long lines. Alt+- Decrease limit for long lines. Ctrl+Shift+H Toggle auto close HTML/XML. Alt+T Always on top. Ctrl+0 Transparent mode. Alt+F5 File change notification settings. Ctrl+9 Display text excerpt in title. F7 Save settings now. Ctrl+F7 Jump to ini-file. Misc. Shift+F9 Copy pathname to clipboard. Ctrl+Shift+K Copy window position to clipboard. Ctrl+Shift+P Move window to default position. Esc Optionally minimize or exit Notepad2. Shift+Esc Save file and exit Notepad2. F1 Display version info. Regular Expression Syntax Note: the Scintilla source code editing component supports only a basic subset of regular expression syntax, and searches are limited to single lines. . Matches any character. (...) This marks a region for tagging a match. \n Where n is 1 through 9 refers to the first through ninth tagged region when replacing. For example, if the search string was Fred([1-9])XXX and the replace string was Sam\1YYY, when applied to Fred2XXX this would generate Sam2YYY. \< This matches the start of a word. \> This matches the end of a word. \x This allows you to use a character x that would otherwise have a special meaning. For example, \[ would be interpreted as [ and not as the start of a character set. [...] This indicates a set of characters, for example, [abc] means any of the characters a, b or c. You can also use ranges, for example [a-z] for any lower case character. [^...] The complement of the characters in the set. For example, [^A-Za-z] means any character except an alphabetic character. ^ This matches the start of a line (unless used inside a set, see above). $ This matches the end of a line. ? This matches 0 or 1 times. For example, a?b matches ab and b. * This matches 0 or more times. For example, Sa*m matches Sm, Sam, Saam, Saaam and so on. + This matches 1 or more times. For example, Sa+m matches Sam, Saam, Saaam and so on. *? Causes * and + to behave non-greedy. For example, <.+> matches +? all HTML tags on a line, whereas <.+?> matches only one tag. \d Any decimal digit. \D Any character that is not a decimal digit. \s Any whitespace character. \S Any character that is not a whitespace character. \w Any "word" character. \W Any "non-word" character. \xHH Character with hex code HH. -----> Examples (don't use quotes) - Quote lines: find "^" replace with "> " - Unquote lines: find "^> " replace with "" - Remove line numbers: find "^[0-9]+" replace with "" - Convert tabs to double spaces: find "\t" replace with " " - Remove NULL bytes: find "\x00" replace with "" Command Line Switches Notepad2.exe [encoding] [line-ending-mode] [/e id] [/g ln[,col]] [/m[-][r|b] text] [/l|/l0] [/q] [/s ext] [/d] [/h] [/x] [/c] [/b] [/n|/ns] [/r|/rs] [/p x,y,cx,cy[,max]|/p0|/ps|/p[f|l|t|r|b|m]] [/t title] [/i] [/o|/o0] [/f ini|/f0] [/u] [/z ...] [/?] [+|-] [file] ... file File to open, can be a relative pathname, or a shell link. Must be the last argument, no quoted spaces by default. + Accept multiple file arguments (with quoted spaces). - Accept single file argument (without quoted spaces). ... Desired file encoding (can be one of /ansi, /unicode, /unicodebe, /utf8 or /utf8sig). ... Desired line ending mode (either /crlf, /lf, or /cr). /e Specify file source encoding. /g Jump to specified position, /g -1 means end of file. /m Match specified text (/m- last, /mr regex, /mb backslash). /l Auto-reload modified files; /l0 disable change notification. /q Force creation of new files without prompt. /s Select syntax scheme associated with specified extension. /d Select default text scheme. /h Select Web Source Code scheme. /x Select XML Document scheme. /c Open a new Notepad2 window and paste the clipboard contents. /b Open a new Notepad2 paste board to collect clipboard entries. /n Always open a new Notepad2 window (/ns single file instance). /r Reuse Notepad2 window (/rs single file instance). /p Set window position to x,y with size cx,cy, optional max set to nonzero to zoom; /p0 system, /ps internal defaults; /p(f)ull,(l)eft,(t)op,(r)ight,(b)ottom,(m)argin. /t Set window title. /i Start as tray icon. /o Keep window on top; /o0 do not keep window on top. /f Specify ini-file; /f0 use no ini-file (don't save settings). /u Launch with elevated privileges. /v Print specified document to default printer and quit. /z Skip next (usable for registry-based Notepad replacement). /? Display a brief summary about command line parameters. Source Code Notepad2 is based on the Scintilla source code editing component: http://www.scintilla.org The full Notepad2 source code can be found at: http://www.flos-freeware.ch More Information and Resources For more information on Notepad2 features, how to replace Windows Notepad, and answers to the most frequently asked questions (FAQ), please visit the Notepad2 website: http://www.flos-freeware.ch Feature Requests Thank you very much for the overwhelming feedback about Notepad2! Feature requests are always welcome, but please keep in mind that Notepad2 has been designed as a compact Notepad replacement. Credits and Special Thanks Here I would like to say "THANK YOU" to the developers of the great Scintilla source code editing component [1], which is the core of Notepad2. Without Scintilla, the rich features found in Notepad2 wouldn't have been possible! [1] http://www.scintilla.org Many thanks to everybody for sending me bug reports and useful hints. A special thank goes to Roland Weigelt [2] for his helpful thoughts and comments about Notepad2 features and usability in early develop- ment stages. I'd also like to express my thanks to Timo Kunze [3], Kai Liu [4], Moritz Kroll, Seunghun Thomas Lee [5] and Shawn Brenneman for sending detailed bug reports and ready-to-use patches. [2] http://www.roland-weigelt.de [3] http://www.TimoSoft-Software.de [4] http://code.kliu.org/misc/notepad2/ [5] stlee42@gmail.com Copyright Notepad2 is FREE SOFTWARE and may be used and distributed freely. Please do not charge any distribution or download fees for this program, except for the cost of the distribution medium. The use of this software is AT YOUR OWN RISK. See License.txt for full details. If you have comments or questions, please drop me a note: florian.balmer@gmail.com (c) Florian Balmer 2004-2011 ###