• 5 Votes
    1 Posts
    1k Views
    No one has replied
  • Bug Report

    Boycott Notepad++
    8
    0 Votes
    8 Posts
    505 Views
  • Search/Find Dialog

    Help wanted · · · – – – · · ·
    5
    0 Votes
    5 Posts
    262 Views
    Gerhard MunroG

    @guy038 @PeterJones

    I have checked the Registry Entries as requested:

    If your system doesn’t have MS Shell Dlg (or 2) installed, or even if it does, you might also want to look in your registry at HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes and see if MS Shell Dlg (or … 2) has an entry (for mine, those two have entries set to MS Sans Serif and Tahoma, respectively). If there is a FontSubstitutes entry set up on your computer, then you need to check that the resulting font exists in your c:\windows\fonts\ or equivalent directory. If not, then I have no idea what font that Windows OS will choose for that text.

    Regex.png

    Then checked the fonts:

    Screenshot 2025-07-27 165307.png

    I highlighted the 2 fonts, MS Sans Serif is named MS Sans Serif Regular but I think this is ok.

    I then checked my wife’s laptop, HP Firefly with Win 11 24H2 and Notepad++ is perfect. I gather it must be a graphics setting on my machine as I am having endless driver issues. I also read up a lot on this topic and it seems like it has something to do with scaling (not 100% sure here).

    Anyway, I apologize for this thread as I think this is an isolated incident on this specific laptop.

    The resolution is 3840 x 2400
    Scale : 250% (Recommended)

  • 0 Votes
    4 Posts
    164 Views
    mathlete2M

    @Раке if you still prefer using a Regex-based Search and Replace, you can add a Start of Line anchor (and perhaps the whitespace character class with a quantifier) to get similar results. For example, a search of ^\s*\r\n will remove all “empty” lines, including ones with various types of whitespace.

    Sample start text:

    c8db255e-b5b8-4d9d-b85c-db4da28525d5-image.png

    After running the S/R with the above Regex:

    a6fef303-5305-4289-9f25-8f4ebfd36ff9-image.png

  • [regex] Why unexpected hit?

    Help wanted · · · – – – · · ·
    3
    0 Votes
    3 Posts
    159 Views
    S

    @PeterJones Thank you.

  • 0 Votes
    3 Posts
    164 Views
    th3lifeoftorchT

    @PeterJones Very much appreciate this, you saved me a lot of time

  • 0 Votes
    5 Posts
    154 Views
    Paul LeoP

    @Paul-Leo Thanks, and sorry about missing the FAQ re: npp crashes after update/upgrade!

  • 0 Votes
    7 Posts
    343 Views
    PeterJonesP

    @Ivan-Garnizov said in Macros to find foward the next character:

    the question refers to your source of information,
    Where do you find and most importantly interpret these codes?

    My source of information is the User Manual and the Notepad++ source code, both of which are publically available.

    User Manual: Generic info on macros = https://npp-user-manual.org/docs/macros/ User Manual: Details on the macro syntax in the shortcuts.xml file = https://npp-user-manual.org/docs/config-files/#macros Source Code: Values for the message="###" on the type="0" and type="1" commands = https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/scintilla/include/Scintilla.h Each of those command names (with their numbers) listed in Scintila.h is documented by the Scintilla project = https://scintilla.org/ScintillaDoc.html Source Code: Values for the wParam="###" on the type="2" commands = https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/menuCmdID.h The menuCmdID.h was not intended primarily for human-readability, so here is an example cheat sheet for how to read it: If we wanted to look up the Search > Select and Find Next, and already knew it was IDM_SEARCH_SETANDFINDNEXT:#define IDM_SEARCH_SETANDFINDNEXT (IDM_SEARCH + 48) That says that IDM_SEARCH_SETANDFINDNEXT is defined as the value of IDM_SEARCH + 48. So then you look for IDM_SEARCH:#define IDM_SEARCH (IDM + 3000) So that means that IDM_SEARCH_SETANDFINDNEXT is IDM + 3000 + 48 = IDM + 3048. Looking for the definition of IDM:#define IDM 40000 So that means that IDM_SEARCH_SETANDFINDNEXT is 40000 + 3000 + 48 = 43048 But that required knowing beforehand what the internal IDM_XYZ name for the menu-command was that you wanted was. There are two good ways for finding that: In the menuCmdID.h, it is mostly organized by Notepad++ menu, so it’s not that hard to say “I want the Find (Volatile) Next command from the Search menu”, and then to look in menuCmdID.h for the Search menu entries – they start here at IDM_SEARCH, which isn’t that hard to find (for example, look in the file for SEARCH, which is the name of the menu). Once in the right section, the IDM_<section>_<command_name> is reasonably easy to map to the entries in the default English menu system in Notepad++. But that’s still a bit of effort. I make use of the NppUISpy plugin (installed from Plugins Admin), which allows you to look up what the command ID (and thus wParam="###" value) is for every built-in and currently-installed plugin command is. Once you know the ID, you can use it directly. But you can also look up the IDM_xyz name by looking for the last digit or two, and finding the ones that end in that last digit until the name makes sense for the given menu command. This Forum’s FAQs: Automating Notepad++ = https://community.notepad-plus-plus.org/topic/25400/faq-automating-notepad This has a lot about macros, and how to dig in to find even the right menu command IDs for plugin commands (plugin commands are not recordable, but the FAQ explains how to hack the recorded macro to run plugin commands with certain limitation)

    @deleelee , there is no published reference of which commands aren’t recordable – there are thousands of commands, and it’s hard to piece together the information(*). The general rule is “any command that requires user input (launches a dialog, renames a file, etc) cannot be recorded or played back; any other built-in command that can be accessed through a menu can at least be played back by a macro, though an arbitrary list of them cannot be recorded even though they can be played back; almost any normal ‘editing’ command, like copy/paste/select etc, which are handled by the scintilla component, should be recordable”. As the Automating Notepad++ FAQ explains, there is no list of which commands are specifically recordable vs not. Essentially, my recommendation is to try to record a macro, and then see if there are any commands (like the Search > Select and Find Next) that don’t end up with a corresponding entry in the macro; those are usually the commands that aren’t macro-recordable. ;-)

    (*: when I was writing up the FAQ, I tried to create a list of not-recordable-but-playable based on the source code, but I gave up after a few hours of spinning my wheels on that. It’s not a simple task.)

  • notepad ++ adjust indentation

    Help wanted · · · – – – · · ·
    8
    0 Votes
    8 Posts
    9k Views
    T

    @PeterJones I just registered an account to say thank you for mentioning what specific version changed the location of this setting. I came to this thread wondering where to change tabs to spaces. I knew there was a setting somewhere, I just couldn’t remember where, and apparently I must have missed that autoupdate for whatever reason (I don’t remember disabling auto updates but nonetheless I was outdated by a few minor versions), so knowing the setting got moved between versions, and particularly what version, was helpful.

  • THE game of the summer !

    Blogs
    1
    3 Votes
    1 Posts
    3k Views
    No one has replied
  • 9 Votes
    46 Posts
    14k Views
    PeterJonesP
    ConfigUpdater Plugin v2.2.1

    ConfigUpdater Plugin has released v2.2.1, available thru GitHub release page, with bugfix improvements, mostly to Validation Dialog:

    Error handling for null handle ⇒ to prevent potential crashes Disable logfile Monitoring Mode ⇒ it triggers callbacks for many file-changed events, which can bog down setups that use plugins/scripts that add many callbacks Fix progress bar on ConfigUpdater dialog ⇒ makes more-visible progress as each file is processed ValidationDialog: say Line#123 instead of #123 in the Validation dialog error list ⇒ Makes it more clear to the user that the number is the line number, not just some internal tracking number ValidationDialog: Rename Done -> Close ValidationDialog: Rename Go to Model -> Open/Align Model in Other View ValidationDialog: Disabled Validate button when no file selected ValidationDialog: Add ephemeral “Please select a file to validate” choice as initially-selected “file” for validation, which will go away once you’ve made a choice ValidationDialog: Open/Align Model now allows opening the model even when there are no validation errors (or when you haven’t even validated yet) it was previously not allowed because the vector it was looking at to find which line number in model-file was 0-length if there were no errors (or no validation done yet); I was able to update the logic to choose line 0 if there was no selection or no validation errors Update langs.xsd to check for duplicate <Keyword name="xyz"> entries NOTE: if you want this feature, you have to delete the old ...\plugins\config\ConfigUpdater\langs.xsd before launching the ConfigUpdater or ValidateConfigFiles dialogs (only need to delete the file once; after it is regenerated, the new error checking will be available in the future) Only allow one Validator dialog ⇒ It could cause problems if more than one dialog were trying to validate at the same time, and there is no compelling reason for allowing multiple instances of that dialog
  • 2 Votes
    22 Posts
    3k Views
    Alan KilbornA

    @mkupper said:

    I discovered that the Find field is limited to 2046 characters.

    It looks like in the next release of Notepad++ this is going to get bumped up to around 16384 characters. See https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16855 for details.

  • Certificate install location

    Security
    2
    0 Votes
    2 Posts
    2k Views
    PeterJonesP

    @Dave-Teetz said in Certificate install location:

    Page /news/v883-self-signed-certificate/ install for LocalMachine.

    Page dics/getting-started/#notepad-self-signed-certificate-authority-for-binaries says “If you accidentally picked Local Machine…”

    These appear to be conflicting instructions.

    It will actually work in either.

    When I wrote the original instructions, I picked Current User, because, from a security standpoint, it’s always better to pick the most-restrictive location – that way, my choices (like adding a new certificate to the trust system) will only affect me, rather than affecting everyone who uses the same computer. On most PCs, where there is only one user anyway, it completely does not matter.

    When Don wrote the instructions in the “news” page, he for some reason decided to recommend Local Machine instead of Current User: I don’t know why he did that, nor do I agree with it.

    But regardless, the phrasing in the User Manual is correct, because what the UM is really pointing out with the “accidentally picked” is that if you installed it in Location A, you have to use the right tool to be able to find it: if you installed it in Current User, you must use certmgr.msc to find it; if you installed it in Local Machine, you must use certlm.msc to find it.

    Maybe I will update the manual to give users the understanding to make the correct choice between Current Userand Local Machine, rather than implying only one way is right that one way was only “accidental”.

    update: the User Manual has been updated; it now gives the user the information needed to make the correct choice for their circumstances, but makes sure to enable them to verify or change, whichever choice is made.
    update 2: rephrased my last paragraph before the update, because the final version in the user manual still strongly implies one way is almost-always right, but it gives the decision guidelines for which is better, and still explains how to work with either.

  • how to resize plugin window

    Help wanted · · · – – – · · ·
    2
    0 Votes
    2 Posts
    114 Views
    PeterJonesP

    @ccoreymcmillan said in how to resize plugin window:

    . it wont let me resize the window and i am super green

    It is up to each individual plugin author to decide whether a dialog should be resizeable, and if so to include the code to make it resize. If the plugin author didn’t make it resizeable, there is nothing you or Notepad++ can do to change that. Sorry

    i would include a screenshot but don’t see a file upload or anything

    You can just paste the image in your post.

  • You CAN disable brace highlighting

    General Discussion
    5
    2 Votes
    5 Posts
    526 Views
    Ethan GreerE

    Well, I submitted a feature request. It is here:

    https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16852

    Any feedback or suggested edits or improvements would be greatly appreciated!

  • Close on last tab exit missing in settings

    General Discussion
    3
    1 Votes
    3 Posts
    158 Views
    Erin PhillipsE

    @PeterJones thank you. I completely overlooked this new page in preferences.

  • NotePad++ preview plugin? I can't find it.

    General Discussion
    3
    0 Votes
    3 Posts
    527 Views
    rdipardoR

    @Coises said in NotePad++ preview plugin? I can't find it.:

    It looks as if [Preview HTML] exclusively uses Internet Explorer rendering…

    F.Y.I.

    Preview HTML’s browser host was recently updated to Microsoft Edge.

    preview-html-v1.4-screenshot.png

    You will need Windows 1709 (build 10.0.16299) or a later version to use it. For that reason, I’m not planning to update the Plugin List until some time after consumer editions of Windows 10 pass their EOL date in October.

  • Is there a way to disable brace highlighting?

    General Discussion
    9
    0 Votes
    9 Posts
    310 Views
    Ethan GreerE

    @PeterJones

    Hello again Peter! Thanks for the advice. When I said “hate hate hate” I meant that as more tongue-in-cheek. Maybe that was the wrong foot to put forward first. Sorry if I honked you off. I certainly wouldn’t bring that energy into a feature request.

    Edit: I get what you’re saying about essential features of Notepad++. It seems like if there’s an option to turn off, say, current line highlighting, it would make sense to include an option to turn off brace highlighting. I’m sure it won’t surprise you to know that I disable current line highlighting, for much the same that I want to disable brace highlighting – I find it distracting.

    Anyway, I’ll throw up a feature request, and if it is never implemented, I’ll deal with it. Overall I love Notepad++ very much.

  • 0 Votes
    20 Posts
    34k Views
    C

    Yes, this is annoying but you can put your backup anywhere you want and then create a symbolic link in the hardcoded location that points to your real backup. That is what I did and it works seamlessly. Should be able to update the path but this is a pretty clean workaround.

  • numeri casuali

    Help wanted · · · – – – · · ·
    4
    0 Votes
    4 Posts
    210 Views
    guy038G

    Hello, @stephano-brovelli and All,

    From wikipedia, for example, here is the list of the 20 most common surnames in England, which will be our INPUT text :

    Surname Percentage Smith 1.26 Jones 0.75 Taylor 0.59 Brown 0.56 Williams 0.39 Wilson 0.39 Johnson 0.37 Davies 0.34 Robinson 0.32 Wright 0.32 Thompson 0.31 Evans 0.30 Walker 0.30 White 0.30 Roberts 0.28 Green 0.28 Hall 0.28 Wood 0.27 Jackson 0.27 Clark 0.26

    So, let’s suppose you want to insert, a column of random numbers between the Surname and Percentage existing columns. Follow this road map :

    First, determine the number of rows of your list : in our example we have 20 rows

    After your list, create 20 consecutive empty lines

    Move back to the beginning of these empty lines

    Open the Column editor ( Alt + C )

    Select the Number to Insert option

    Chose 1 for each option and Zeros or Spaces for leading characters

    Select the DEC format

    Click on the OK button

    => Of course, you’ll get this simple list :

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    Move back to the beginning of that list of numbers

    Do a normal selection of the lines ( from line 1 to line 20 )

    Use the Edit > Line Operations > Randomize Line Order option

    => You’ll get, for instance, this kind of OUTPUT :

    9 5 20 18 19 3 7 6 17 8 16 2 14 1 4 15 10 12 11 13

    Move to the first number of this new list, at column 1

    Hold down the Alt and Shift

    Do a zero-width column selection of these 20 numbers, with successive hits on the Down arrow

    Click two times on the Right arrow key, to select the complete numbers

    Click on the Ctrl + C shortcut

    Go to the beginning of your present list

    Put the caret/cursor on the 15th column of the first line Smith

    Click on the Ctrl + V shortcut

    => You should get your expected OUTPUT text, below :

    Surname Percentage Smith 9 1.26 Jones 5 0.75 Taylor 20 0.59 Brown 18 0.56 Williams 19 0.39 Wilson 3 0.39 Johnson 7 0.37 Davies 6 0.34 Robinson 17 0.32 Wright 8 0.32 Thompson 16 0.31 Evans 2 0.30 Walker 14 0.30 White 1 0.30 Roberts 4 0.28 Green 15 0.28 Hall 10 0.28 Wood 12 0.27 Jackson 11 0.27 Clark 13 0.26

    Best Regards,

    guy038

    Ciao, @stefano-brovelli e tutti,

    Da wikipedia, ad esempio, ecco la lista dei 20 cognomi più comuni in Inghilterra, che sarà il nostro testo INPUT :

    Cognome Percentuale Smith 1.26 Jones 0.75 Taylor 0.59 Brown 0.56 Williams 0.39 Wilson 0.39 Johnson 0.37 Davies 0.34 Robinson 0.32 Wright 0.32 Thompson 0.31 Evans 0.30 Walker 0.30 White 0.30 Roberts 0.28 Green 0.28 Hall 0.28 Wood 0.27 Jackson 0.27 Clark 0.26

    Supponiamo quindi di voler inserire una colonna di numeri casuali tra le colonne Cognome e Percentuale esistenti. Seguire questa tabella di marcia:

    Per prima cosa, determinare il numero di riga dell’elenco: nel nostro esempio abbiamo 20 righe

    Dopo l’elenco, creare 20 righe consecutive vuote.

    Tornare all’inizio di queste righe vuote.

    Aprire il Column editor ( Alt + C )

    Selezionare l’opzione Numero da inserire.

    Scegliere 1 per ogni opzione e Zeri o Spazi per i **caratteri di testa

    Selezionare il formato DEC

    Fare clic sul pulsante OK

    => Naturalmente, si otterrà questo semplice elenco:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    Tornare all’inizio dell’elenco di numeri

    Effettuare una selezione normale delle righe ( dalla riga 1 alla riga 20 )

    Utilizzare l’opzione Modifica > Operazioni di riga > Randomizza ordine righe.

    => Si otterrà, per esempio, questo tipo di OUTPUT :

    9 5 20 18 19 3 7 6 17 8 16 2 14 1 4 15 10 12 11 13

    Passare al primo numero di questo nuovo elenco, alla colonna 1.

    Tenere premuti i tasti Alt e Shift.

    Eseguire una selezione a larghezza zero di colonna di questi 20 numeri, premendo successivamente la freccia Giù.

    Fare clic due volte sul tasto freccia Destra per selezionare i numeri completi.

    Fare clic sulla scorciatoia Ctrl + C

    Andare all’inizio dell’elenco presente

    Posizionare il cursore sulla 15° colonna della prima riga Smith

    Cliccare sulla scorciatoia Ctrl + V

    => Dovreste ottenere il testo aspettato OUTPUT, qui sotto:

    Cognome Percentuale Smith 9 1.26 Jones 5 0.75 Taylor 20 0.59 Brown 18 0.56 Williams 19 0.39 Wilson 3 0.39 Johnson 7 0.37 Davies 6 0.34 Robinson 17 0.32 Wright 8 0.32 Thompson 16 0.31 Evans 2 0.30 Walker 14 0.30 White 1 0.30 Roberts 4 0.28 Green 15 0.28 Hall 10 0.28 Wood 12 0.27 Jackson 11 0.27 Clark 13 0.26

    Cordiali saluti,

    guy038

    Tradotto con DeepL.com (versione gratuita)