• KNOWN ISSUE: 8.8.2 doesn't appear to be digitally signed

    Pinned until 8/2/25, 12:32 PM
    4
    0 Votes
    4 Posts
    371 Views
    TragenT

    It’s even worse that you now need a USB stick / HSM for code signing certificates which makes it even more complicated and expensive.

  • FORUM: Posting Queue

    Pinned
    9
    12 Votes
    9 Posts
    2k Views
    PeterJonesP

    @donho ,

    Makes sense.

    Since deleting posts was tedious for me, I had recently been looking into whether I could use the API that the forum offers to write a script to automate some of the cleanup (like with purging the deleted posts/topics), but that will take some time to develop.

    update: As of Nov 9, the purge automation is working, and it will run once a week. (Along with purging deleted posts/topics, it will also delete user accounts that are more than a year old where the user never posted and never logged in after the first day – nearly half of the 30000 accounts were in this category)

  • Please Read This Before Posting

    Pinned Locked
    1
    5 Votes
    1 Posts
    4k Views
    No one has replied
  • Note++ file location

    5
    0 Votes
    5 Posts
    324 Views
    PeterJonesP

    @tnet-chrome said in Note++ file location:

    The file config.xml under %AppData% had the recent files list. But if I manually delete any recents, save the file and restart Notepad++ the same list of files is re-added. Why? Where from?

    Because those recents were still in memory when you exited Notepad++, and when Notepad++ exits, it overwrites the existing config.xml with those values from memory – even if you had recently manually edited config.xml. The user-manual section on Editing Config Files has a paragraph explaining how to edit config.xml, because it must be treated differently than the other config files (and config files in general have to be treated differently relative to “normal” files, as that entire section describes).

  • 0 Votes
    2 Posts
    42 Views
    guy038G

    Hello, @valery-orlov and All,

    Generally, this kind of modifications can be achieved with regular expressions according to that following syntax :

    FIND ^(\w)(\w+)

    REPLACE \u\1\L\2

    However, you do not have chance because Notepad++ case changes can work properly on default ASCII characters in range [A-Z] and/or [a-z] ONLY :-((

    A second possibility would be to use the Columns++ plugin which has a true Unicode search/replace feature, which correctly handle any case modification !

    But, here is an easy solution to your problem, which can be simply processed from within Notepad++ :

    First, backup your file with an other name ( One never knows ! )

    Open your file in Notepad++

    If necessary, disable the Word wrap feature ( View > Word wrap )

    If necessary, move to the beginning of your file ( Ctrl + Home )

    Open the Replace dialog ( Ctrl + H )

    Un-check all box options

    FIND ^\S+

    REPLACE $0\t\t\t\t\t\t\t\t\t\t

    Click on the Replace All button

    So, for example, from this INPUT text :

    ЗАПРАШИТЬ, начать прашить, запрасолить. ЗАПРЕВАТЬ, запреть, начинать, начать преть; т. е. слеживаться и гнить или увариваться на малом огне; о теле, коже; терять верхнюю кожицу и болеть, от пота и наминки. -ся, уптрб. иногда в том же знач. Запреванье ср. длит. запренье окончат. запрев м. запревка ж. об. действ. или сост. по знач. глаг. От запрева под мышкой веред, болячка прикинулась. Запрелое сено, загнившее в средине, от сырости и жара. Запрель ж. запрелое место тела, особ. у младенцев, прель. ЗАПРЕДМЕТНЫЙ, находящийся позади предмета. ЗАПРЕДПОСЛЕДНИЙ, допредпоследний, третий с хвоста.

    You should get this OUTPUT text :

    ЗАПРАШИТЬ, начать прашить, запрасолить. ЗАПРЕВАТЬ, запреть, начинать, начать преть; т. е. слеживаться и гнить или увариваться на малом огне; о теле, коже; терять верхнюю кожицу и болеть, от пота и наминки. -ся, уптрб. иногда в том же знач. Запреванье ср. длит. запренье окончат. запрев м. запревка ж. об. действ. или сост. по знач. глаг. От запрева под мышкой веред, болячка прикинулась. Запрелое сено, загнившее в средине, от сырости и жара. Запрель ж. запрелое место тела, особ. у младенцев, прель. ЗАПРЕДМЕТНЫЙ, находящийся позади предмета. ЗАПРЕДПОСЛЕДНИЙ, допредпоследний, третий с хвоста.

    Now, move again to the very beginning of your file ( Ctrl + Home )

    Run the option Edit > Begin/End Select in Column Mode option ( Alt + Shift + B )

    Move to the very end of your file ( Ctrl + End )

    Move the caret/cursor after a fair number of tabulations, on this last line

    Run again the option Edit > Begin/End Select in Column Mode option ( Alt + Shift + B )

    => A rectangular selection, on all the lines of your file, should occurs

    Run the Edit > Convert Case to > Proper Case option ( Alt + U ) on this rectangular selection

    You should get this OUTPUT text :

    Запрашить, начать прашить, запрасолить. Запревать, запреть, начинать, начать преть; т. е. слеживаться и гнить или увариваться на малом огне; о теле, коже; терять верхнюю кожицу и болеть, от пота и наминки. -ся, уптрб. иногда в том же знач. Запреванье ср. длит. запренье окончат. запрев м. запревка ж. об. действ. или сост. по знач. глаг. От запрева под мышкой веред, болячка прикинулась. Запрелое сено, загнившее в средине, от сырости и жара. Запрель ж. запрелое место тела, особ. у младенцев, прель. Запредметный, находящийся позади предмета. Запредпоследний, допредпоследний, третий с хвоста.

    Finally, use the following regex S/R to get rid of the excess TAB characters :

    FIND \t

    REPLACE Leave EMPTY

    And you’ll get your expected OUTPUT text :

    Запрашить, начать прашить, запрасолить. Запревать, запреть, начинать, начать преть; т. е. слеживаться и гнить или увариваться на малом огне; о теле, коже; терять верхнюю кожицу и болеть, от пота и наминки. -ся, уптрб. иногда в том же знач. Запреванье ср. длит. запренье окончат. запрев м. запревка ж. об. действ. или сост. по знач. глаг. От запрева под мышкой веред, болячка прикинулась. Запрелое сено, загнившее в средине, от сырости и жара. Запрель ж. запрелое место тела, особ. у младенцев, прель. Запредметный, находящийся позади предмета. Запредпоследний, допредпоследний, третий с хвоста.

    Best Regards,

    guy038

  • The accents above Cyrillic capital letters are incorrectly displayed

    3
    0 Votes
    3 Posts
    86 Views
    Valery OrlovV

    @xomx, thank you very much. When I selected another font (Ebrima), the problem was resolved.

  • Editar formulas de excel en Notepad

    7
    0 Votes
    7 Posts
    68 Views
    Jhorbam Baena OrozcoJ

    @Terry-R Thank You!

  • is thier any posibilities to find and replace multiple words at once ?

    4
    0 Votes
    4 Posts
    79 Views
    CoisesC

    @neeraj10786:

    While I don’t use it myself (and so can’t give detailed advice), it seems like the MultiReplace plugin by @Thomas-Knoefel would be easier to use than built-in methods. If this is a single-time problem, then the built-in methods others have given make sense; but if it is something you’ll need to do repeatedly, I’d check out that plugin.

  • 9 Votes
    42 Posts
    11k Views
    PeterJonesP

    @Lycan-Thrope said in Config Files Need Updating, Too:

    became enabled only after selecting and double clicking the error

    I should probably add a single-click handler to enable that button, too. (Without any selection, it wouldn’t know where in the file to go to, so I will probably leave it disabled with no selection)

  • Editor displays "!=" token as "≠" symbol - how to turn off?

    5
    0 Votes
    5 Posts
    206 Views
    B

    Many thanks to @PeterJones and @Coises, for the answers, perspective, and (in Peter’s case) updating the User Manual.

    You are right, it was Cascadia Code; changing it to Consolas, for example, got rid of it. My “exhaustive” font testing was… only Cascadia Code and Fira Code, so I literally hit both of the two. I’ve been mostly using Hack font for such a long time, I just haven’t really noticed any of this ligature-supporting fonts. I just got a new PC and hadn’t installed Hack yet.

    I like finding out where I was ignorant and wrong. It makes me less so.

    Cheers and thanks again!
    –BrBill

  • Unexpected text display change for >=

    5
    2 Votes
    5 Posts
    434 Views
    PeterJonesP

    @BrBill said in Unexpected text display change for >=:

    @Alan-Kilborn I want to turn this off too. It also displays != as ≠. Does anyone know?

    You didn’t need to post a second time with the same question 15 minutes after your first post here.

    Besides, one answer in the post you were replying to – turning off DirectWrite, which is now setting it to GDI (most compatible) as of a few versions ago – would have worked for you if you’d tried it.

    Or, as I explain here, pick a font that doesn’t have the ligature feature.

    Either works.

  • Applying Diff patches?

    4
    0 Votes
    4 Posts
    251 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
  • Quick Question: what Python version for Pythonscript does everyone use?

    3
    1 Votes
    3 Posts
    148 Views
    EkopalypseE

    @pbarney

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

  • Npp website spelling error

    7
    3 Votes
    7 Posts
    780 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 😁👍

  • 8.8.2 - coming soon??

    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

  • Replace 2nd occurrence in string per line, then nth occurrence Npp v8.8.1

    5
    0 Votes
    5 Posts
    264 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
  • [suggestion] View > Tab > Move up/down

    3
    0 Votes
    3 Posts
    473 Views
    S

    Thanks for the tip.

  • Find/Replace Window blocking results ...

    11
    1 Votes
    11 Posts
    1k Views
    M

    Replace was where I was having the issue and it brings up some challenges that Find does not - basically, you would need a shortcut for “Ignore and Find Next” and one for “Replace and Find Next” and you’d have to remember those shortcuts.

    @Coises; TBH, now that I’ve learned to resize the screen. I’m okay with it. I think most users have multiple monitors these days and use the find/replace dialog on the second monitor.

    @Coises and @mkupper - I wasn’t aware of the caret button to move the dialog to two lines. I think that and an OPTION to dock the find dialog in the lower-right corner so I don’t have to re-size the screen would be perfect for what I want.

    Again - none of this addresses the context issue - which isn’t a primary concern of mine, but I still think it should be accommodated, if possible.

  • How to Remove "Edit with Notepad++" from the Right-Click Context Menu

    2
    0 Votes
    2 Posts
    372 Views
    PeterJonesP

    @Ling-Ling ,

    When you install Notepad++, it installs the right-click context-menu entry using a “Shell Extension”. The User Manual has an entire page on the Shell Extension, including a secion on how to unregister the Shell Extension so that the “Edit with Notepad++” entry goes away

  • Notepad++ lags when text files are on FTP

    11
    0 Votes
    11 Posts
    743 Views
    mkupperM

    @Alexander-Anisimov said in Notepad++ lags when text files are on FTP:

    You may be right. In my understanding, WebDAV is another way of connecting protocol but still is FTP, although different.
    May be I am wrong.

    You are wrong. :-)

    WebDAV is a protocol that is similar to HTTP that web browsers use with web servers. As WebDAV looks like HTTP on the network it works with NAT, firewalls, web proxies, etc. Accessing a WebDAV server is just like accessing a web server. Many web browsers have built-in support for WebDAV.

    That said, if there are bandwidth or latency issues accessing a particular WebDAV server then all applications, including Notepad++ will be impacted.

    WebDAV itself is not slow or laggy.

    If I was stuck with needing to edit files that are on a slow or laggy server then I probably would create script that first copies the file to the local hard drive, runs Notepad++ on the file, and then keeps an eye on both the local and remote copies of the file. If the local copy changes then I push it out to the remote server. If it changes on the remote side then pop-up a warning. A tricky aspect is that Notepad++ allows people to exit Notepad++ and then resume editing. Thus I can’t depend on Notepad++.exe going away as a signal that I no longer need to monitor and synchronize that file but also need to watch Notepad++'s session.xml file.