• Unexpected change in language

    Help wanted · · · – – – · · ·
    3
    0 Votes
    3 Posts
    148 Views
    PeterJonesP

    @Pat-Mitchell ,

    Since this question had nothing to do with the installer issues from the original post that you replied to, I forked it out to a separate question: this will get it in the right place so people know you are looking for help on this separate issue.

    There are two ways that I could interpret your question: your first phrase, “My note pad switched to a foreign language”, makes it seem like the user interface (menus, dialog boxes, etc) changed to a different language. For that, @Jonathan-Johansen’s advice is solid. As it says in that discussion, if you cannot figure out which menus to click to access the settings, because it’s too foreign for you, you can exit Notepad++, and use Windows Explorer to go to %AppData%\Notepad++\ (or appropriate config file location for your Notepad++) and delete nativeLang.xml – when you restart Notepad++, it will go back to the default English language.

    But you also said, “When I try to load a document, it comes up foreign and unreadable” – and the Settings > Preferences > General > Localization (or deleting nativeLang.xml) can do nothing about that. Notepad++ shows you the text that’s in a file, regardless of what localization language your user-interface is set to. If the text is in Chinese characters, it doesn’t matter whether your user interface is set to English, Russian, or pig latin – the text will still show up as Chinese.

    So if you are loading a file and it is showing up in valid Chinese – if you don’t know, you could copy the text, and paste it into your favorite online translator, and if it can spit out meaningful English when it translates, then it probably is valid) – but if it’s showing up as real Chinese, that means the file is really written in Chinese. So either you are not opening the same file as you did before (if you are sure that exact same file used to be in English), or someone edited that file and replaced its contents with the Chinese. However, if the text copied from the file cannot be translated (even if you put the translator website into “automatically detect language”), then it’s probably a binary file. If so, you are either opening a different file, or someone zipped it or changed it to a different format (a .docx or .pdf are not text files, so Notepad++ cannot be used to read them); or maybe someone encrypted the textfile, in which case you will have to ask them how to decrypt it before you try to edit the text in Notepad++; or, unfortunately, if your machine has been infected with ransomware or some other malware, that malicious code (which has nothing to do with Notepad++) may have encrypted or destroyed your text files, maybe in the hopes that you would pay them to give you back your original files (never do that; clean things up and restore your data from your backup, if that’s the condition you are in).
  • How to navigate DSpellCheck?

    Help wanted · · · – – – · · ·
    3
    1 Votes
    3 Posts
    94 Views
    LordP666L

    @PeterJones

    Thank you. I thought something was wrong with my Windows setup or keyboard.

  • KNOWN ISSUE: The digital certificate is not available in version 8.8.2.

    Pinned until 8/1/25, 4:30 PM Security
    5
    0 Votes
    5 Posts
    503 Views
    PeterJonesP

    I pinned this and added KNOWN ISSUE to the title, to hopefully make it plainer to people that they don’t need to report it here.

  • Notepad v8.8.2 32-bit installer: virus or malware detected

    Security
    2
    0 Votes
    2 Posts
    2k Views
    xomxX

    @Brian-Dickens

    https://community.notepad-plus-plus.org/post/102220

    As I said, without the N++ digital signature, stupid AVs go nuts.

    The number of false positives from AVs is so high because in the past, many attackers probably have also used the free, open source NSIS for their purposes.

  • Export Data to Excel

    Help wanted · · · – – – · · ·
    3
    0 Votes
    3 Posts
    151 Views
    PeterJonesP

    @Caroline ,

    I am going to echo @Mark-Olson’s sentiment, but with a lot more wordy detail, because that’s the kind of answers I give here. ;-)

    Notepad++ does not have a native compare function. Since you are saying you are using Notepad++ to compare, I have to conclude that you are using either the old Compare plugin or its much-improved successor ComparePlus. (If you are still using ComparePlugin, remove it and install ComparePlus, as that is the one that is getting continued support going forward.)

    Unfortunately, even ComparePlus doesn’t have any feature to export its comparison to any format (whether it be something “standard”, like normal diff output or a patch file, or something unusual like a custom spreadsheet format)

    Just so you know, Notepad++ is a text editor, and Excel natively works with binary data files. There is a text-based intermediary – the CSV format. But I cannot think of any standard CSV-based format that would be reasonable for a difference/comparison (ie, I have never heard of diff or similar tools outputting to a CSV format), so I doubt there’s anything ready-made that exists for Notepad++, any other text editor, or any command-line-based text-comparison tool like diff.

    Since no one here is likely to know what are “CRIMS codes” or what “RPA running [in Excel]” is, or what format that spreadsheet-based tool would want the “differences” in for comparison, there’s not much else we can do at this point.

    If you were to give us some short dummy “CRIMS”, along with a table

    | header 1 | h2 | h3 | |---|---|---| | A1 | B1 | C1 | | A2 | B2 | C2 | | A3 | B3 | C3 | header 1 header2 header3 A2 B2 C2 A3 B3 C3 A4 B4 C4

    And show us what pieces from the CRIMS codes (or the “comparison of CRIMS codes”) map into each of those cells.

    If it’s not too complicated, someone might be able to create a script for the PythonScript plugin that would take one or more CRIMS files and create the text-based CSV spreadsheet, which you could then open in Excel and use the “RPA” tool. And if the CRIMS codes and/or the difference format that you want is too complicated, it might be beyond the scope of free help in a text editor forum; so don’t be surprised if no one is able to help you with that, unless it’s just a simple mapping from a simple data format.

    (However, if comparing the differences between two CRIMS codes is something that people in your field often do with an RPA running in Excel, it would very much surprise me if there weren’t already tools – either command-line or Excel/VBA-based – that didn’t do the comparison or otherwise convert the CRIMS codes into the right format to read in Excel. In which case, it’s not a question for Notepad++ users.)

  • Notepad++ v8.8.2 Release Candidate

    Announcements
    36
    3 Votes
    36 Posts
    24k Views
    B

    Just to mention, for people using Intune to deploy notepad++. if you activate the “managed installers” option, any apps not signed wil lbe signed with a valid certificate and therefore users don’t have popup for the “unknown publisher”. I think you can do the same with SCCM. Will not help regular users, but jsut in case.

  • notepad++,政治言论独裁的软件而已

    Boycott Notepad++
    2
    -1 Votes
    2 Posts
    199 Views
    Jonathan JohansenJ

    @王阿喵 I’m a new member of the forums. I’m sorry that statement upsets you. It’s a benefit of being a person where you won’t be censored, that you can say what you want. The bananas metaphor may just lead to a worse relationship, right? Open source projects can be copied though, and if you can get a few people to agree, you can start a competing open source product, right? May the peace of Christ be with you, friend.

  • We are with Ukraine

    Boycott Notepad++
    4
    -1 Votes
    4 Posts
    1k Views
    王阿喵

    @Deniss-Johanssen 虽然乌克兰遭到了毁灭,但则连斯基的人民得到了那些所谓的明主自由

  • Applying Diff patches?

    General Discussion
    4
    0 Votes
    4 Posts
    262 Views
    EkopalypseE

    @pbarney

    Using PS3 and an installed pygit2 library
    you can do something like

    import pygit2 repo = pygit2.Repository(Path(notepad.getCurrentFilename()).parent) diff = pygit2.Diff.parse_diff(editor.getText()) repo.apply(diff)

    This assumes that

    the patch file has been created from a git tool the current file open is the patch file in question the patch file is in the repo directory
  • 1 Votes
    3 Posts
    158 Views
    EkopalypseE

    @pbarney

    I only use the pre-release version, PS3,
    as I only work with utf8 encoding, which I think everyone should do.

  • 1 Votes
    18 Posts
    2k Views
    Jonathan JohansenJ

    I figure I’d better document the solution(s) for others that may tread this path. A summary of some of the steps needed (of course built on top of Mark’s work!):

    Ensure you register your modeless dialog with NPP (NPPM_MODELESSDIALOG, in Main.cs we call NppFormHelper.RegisterFormIfModeless(Form, bool)) The WPF System.Windows.Controls.UserControl should be in an System.Windows.Forms.Integration.ElementHost, which is in a System.Windows.Forms.Form. I’ve subclassed the ElementHost to handle WM_SHOWWINDOW to update the Visible property, and to trigger a (slightly delayed) refresh of the visuals when we get a WM_SIZE. There I invalidate the visuals and update layouts. There may be a way to skip this, but it’s working, so I’m not trying to fix it. In the WPF UserControl, when it’s Loaded, we have to get the presentation source (as a HwndSource) and add a hook to respond to the WM_GETDLGCODE and tell the source that we DLGC_WANTCHARS and DLGC_WANTARROWS, and maybe we also need DLGC_HASSETSEL.

    I’ve pulled most of it into a method called MakeModelessDialog. And now for a short recording of it working!

    2025-06-28 Typing in Notepad++ modeless WPF dialog works.gif

  • Npp website spelling error

    General Discussion
    7
    3 Votes
    7 Posts
    790 Views
    deleeleeD

    @mkupper said in Npp website spelling error:

    FWIW, this Google search gets zero hits other than this forum thread.

    site:notepad-plus-plus.org "featurs"

    I’m guessing that the misspelling, if it ever existed, was corrected a while back.

    Yes, it was fixed within a few days of me posting 😁👍

  • 0 Votes
    2 Posts
    195 Views
    PeterJonesP

    @Maxim-Rodin ,

    Settings > Preferences > Print, uncheck Print Line Number

  • 8.8.2 - coming soon??

    General Discussion
    16
    0 Votes
    16 Posts
    3k Views
    xomxX

    @rdipardo said in 8.8.2 - coming soon??:

    edition in a user-local path

    I already checked such possibility (for N++ installer, not for portable eds) and have the non-admin user-installations on my TODO, but so low spare time… (#15182)

    @rdipardo said in 8.8.2 - coming soon??:

    can still have context menu entries — scoped to HKEY_CURRENT_USER by default

    Very good. I think the NppShell project should take this into account somehow and allow the HKCR registrations when needed/requested. This HKLM default is(?) IMO the reason for a possible regsvr32 zombie process when trying to register the NppShell manually & unelevated (#15182)

    @Coises said in 8.8.2 - coming soon??:

    I don’t think I’ve ever used a package manager.

    But OTOH you also said that for some SW (Firefox) you allow (welcome(?)) the autoupdates. Such package managers do just that - they remove the burden from the user to constantly check and update their software (even for a portable non-admin user-installation), but at the same time they leave them free to enter this process (if they wanna) and therefore it is not completely hopeless like with the locked stores like WindowsStore or GooglePlay. One example - with the WinGet you can go simply back in the app-versions if you need to (as you do with your “Software\Old”), this is of course impossible with e.g. the GooglePlay (damn hell to them for it!).

    SW-updating “world” just changed and not everything is so bad. So e.g. the WinGet (or more user friendly WinGetUI) way is ok for me (I am not using it for N++, I do it old-school as you do, I admit :-) ). Some relevant links:

    https://community.notepad-plus-plus.org/topic/24884/winget-real-autoupdater-finally
    https://github.com/microsoft/winget-pkgs/tree/master/manifests/n/Notepad%2B%2B/Notepad%2B%2B

  • in correct version reporting

    Help wanted · · · – – – · · ·
    8
    1 Votes
    8 Posts
    418 Views
    xomxX

    @PeterJones said in in correct version reporting:

    some insight as to why the Windows program/features install version isn’t getting updated for you.

    @eli-rosen said in in correct version reporting:

    user for almost 20 years,

    The following will be only my guess.

    Since @eli-rosen uses the N++ installers for so long, maybe he previously used there also a v7.9.1 x64 one, but then he has started to use that Automox (sorry, IDK it) and it can do whatever stuff, so maybe it’s simply forgetting/blocking to update the corresponding Registry item.

    It shouldn’t be a remnant from a previously installed 32-bit v7.9.1. In such a case there should be a separate uninstall-item visible (with a corresponding Registry hive HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++\)

  • 0 Votes
    5 Posts
    270 Views
    FraF

    @PeterJones thanks a lot for the nuances. Indeed, I first wondered about the difference from the group indexing starting at 1. Then also about the difference from the quantifier ( {n} where n is an integer >= 1 https://www.regular-expressions.info/refquick.html).
    Thanks for the $0 group placeholder mention, I wondered about that too, now I understand what it captures.

    I understand the regex as this:

    Find:

    Put everything that preceeds the occurence of interest into a group (1st group referenced by the placeholder with the starting index at 1 ($1) — though there is a placeholder 0 ($0) which references the whole set/string instead of any subgroup of it)). Exclude the occurence of interest from the that group, but state is a the search delimiter for the regex just outside the group.

    Replace with:

    Capture the group with it’s placeholder (make a copy of it and store it: $1 = foo / ^((?:.?foo){0}.?) for the 1st occurence (N+1) with index 0). Use the 2nd/next occurence as external delimiter reference to stop the regex search at (^((?:.?foo){0}.?)foo). Then append the new value (XOO) to the copied unchanged group.

    I think I see what you mean when considering there must always be a 2nd /next occurence for the regex to work so it can’t be starting at zero? While in the background the engine uses a zero based indexing for the 1st element of the occurences series.
    0 is the 1st element in the indexes series, 1 is the 2nd and so on.
    While for the groups placeholders, 0 isn’t an ordinal reference, it’s an arbitrary reference to the set. The ordinal reference starting at 1 in this case.

    I need to check the doc and do more practice to get over the confusing parts!

    The quantifier also starting at 1 though index 0 is still valid but return no value (or the whole set but with empty values)?

    For example:

    19 empty string matches:

    0.gif

    [A-Z]{0} goo A greAS gir PE

    https://regex101.com/r/dYnJmE/1

    / [A-Z]{0} / gm Match a single character present in the list below [A-Z] {0} matches the previous token exactly zero times (causes token to be ignored) A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 0-0 empty string 1-1 empty string 2-2 empty string 3-3 empty string 4-4 empty string 5-5 empty string 6-6 empty string 7-7 empty string 8-8 empty string 9-9 empty string 10-10 empty string 11-11 empty string 12-12 empty string 13-13 empty string 14-14 empty string 15-15 empty string 16-16 empty string 17-17 empty string 18-18 empty string No match/invalid:

    1.gif

    [A-Z]{} goo A greAS gir PE

    https://regex101.com/r/CtqQ0D/1

    / [A-Z]{} / gm Match a single character present in the list below [A-Z] A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) {} matches the characters {} literally (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) Your regular expression does not match the subject string. 5 matches:

    2.gif

    [A-Z]{1} goo A greAS gir PE

    https://regex101.com/r/MImsNL/1

    / [A-Z]{1} / gm Match a single character present in the list below [A-Z] {1} matches the previous token exactly one time (meaningless quantifier) A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 4-5 A 9-10 A 10-11 S 16-17 P 17-18 E 2 matches:

    3.gif

    [A-Z]{2} goo A greAS gir PE

    https://regex101.com/r/p1WOWQ/1

    / [A-Z]{2} / gm Match a single character present in the list below [A-Z] {2} matches the previous token exactly 2 times A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 9-11 AS 16-18 PE
  • 0 Votes
    3 Posts
    202 Views
    PeterJonesP

    @Maxim-Rodin said in How do I convert a Notepad++ texst file to a PDF file with the vertical spacing bvetween the lines staying the same?:

    The book uses box drawing characters, which require the vertical spacing between lines to be very small. All of this needs to be exported in PDF format, but when I open the resulting PDF file, the vertical spacing is very high. Is there any way to fix this, either in Notepad++ or in the finished file?

    The problem might be the font you are using. When I use Fira Code as my font, print some box-drawing to PDF, and then open it in my free SumatraPDF viewer, the spacing looks reasonable (the boxes all connect) – the following is a screenshot from my PDF viewer

    33fe7d55-14fc-41e1-bfb3-d121f83b1563-image.png
    … So it’s showing them still connected.

    (Here’s NPP screenshot before I printed to PDF:
    ee7458bc-e218-417f-8fcd-5235c2f764ce-image.png
    … it shows connected there, too)

    Also, if that’s not working for you, if you take your text file in Notepad++ and use Language > M > MS-DOS Style (which is the lexer that’s useful for the old ASCII art .nfo-style files… though .nfo doesn’t seem to be in my default extension list anymore, which surprised me), Notepad++ actually changes the line spacing to make the lines closer together. So if changing fonts doesn’t work for you, try printing when in the Language = MS-DOS Style.

    Finally, the Settings > Preferences > MISC has some “DirectWrite” or “Rendering mode” settings (depending on which version of Notepad++ you are using) – you can try the various options available to you, as that influences how Notepad++ and the OS interface when dealing with fonts, so that can influence it. You may need to exit and restart Notepad++ for the DirectWrite setting change to take effect.

    For example, in my tests with Fira Code font, if I had Language = “MS-DOS Style” but “Rendering Mode” set to “Direct Write (default)”, I would see gaps, even though in Language = “None (normal text)”, I wouldn’t see gaps. If I change to “Rendering Mode” = “GDI (most compatible)” (or DirectWrite=off in the old nomenclature) and restart and look at the box drawing in “MS-DOS Style”, it goes back to being connected. But my experience may be different than yours, because as I said, when I use FiraCode in my normal setup, the box drawing characters are properly connected.

    In general, Notepad++ tries to print essentially what you see (in terms of font size, line spacing, etc), so if you see the box drawing connected when looking at it on-screen in Notepad++, it should print to PDF (or physical printer) that way, too. If not, it might be your printer driver, or you might need to change your font and/or DirectWrite settings.

  • Create File? message

    Help wanted · · · – – – · · ·
    6
    0 Votes
    6 Posts
    510 Views
    PeterJonesP

    @Nostra-Damus said in Create File? message:

    but don’t have a ‘contextMenu’ folder in the Notepad++ folder, is there anywhere I can download it from? I have got the latest portable version off github but it is not in that either.

    The portable edition does not come with the Shell Extension DLL because the Shell Extension is by definition not portable (it gets registered with your OS; one of the primary points of portable editions of software is to keep them from making changes to your OS configuration and to keep themselves limited to whatever directory you happen to be running them from)

    The only way I have ever tried getting the shell extension is to run the installer (unfortunately, the installer is not one of the ones where you can change the filename to xyz.zip and just browse it like a zipfile, so you cannot easily extract from the installer without running it). And you seem to want the portable, not the installed version. However, it should be noted: you can still use the installer, and give it your alternate install directory of C:\Utils\Notepad++\ and you can choose Don't use %AppData% in the options on the last page of the installer:
    7dae6d44-f65e-4048-872d-cd58d2b61a26-image.png

    However, if you don’t want to run the installer at all, the repo for the Shell Extension is publicaly visible at https://github.com/notepad-plus-plus/nppShell/ … its “releases” only seems to share the source code, not the built DLL, but if you go to the most recent GitHub Actions CI_Build (https://github.com/notepad-plus-plus/nppShell/actions/workflows/CI_build.yml) – click on the most recent (topmost) run in the main list: if it is recent enough, it should have some artifacts attached, and you could grab the 64-bit artifact (the one with x64 in the name). You can extract the DLL from that artifact zipfile, and then create C:\Utils\Notepad++\contextMenu\ folder and put the extracted DLL there.

    But honestly, that’s a lot of work when really all you needed was to add the quotes to get "%1" in your existing registry entries. Since you’ve already confirmed that works, I’d probably recommend just sticking with that.

  • [suggestion] View > Tab > Move up/down

    General Discussion
    3
    0 Votes
    3 Posts
    478 Views
    S

    Thanks for the tip.

  • 0 Votes
    2 Posts
    190 Views
    Mark OlsonM

    @Nachum-Shmilovitz
    Do you have any plugins installed? A plugin might be responsible.

    It’s also possible that the SQL lexer is causing this slow performance. You can disable this lexer (removing all syntax highlighting) by selecting Language -> None (Normal Text) from the Notepad++ main menu.