Community
    • Login
    1. Home
    2. Popular
    Log in to post
    • All Time
    • Day
    • Week
    • Month
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All categories
    • S

      autoupdater and connection temp.sh

      Watching Ignoring Scheduled Pinned Locked Moved Security
      38
      0 Votes
      38 Posts
      20k Views
      Lycan ThropeL

      @donho ,
      Thanks for the verifcation, and sorry for the late reponse, I came down really sick that night for about a 5 day period after posting this, and am just getting back into the swing of things. Just wanted to make sure we didn’t need to be redundant about that process. Thanks again for the clarification.

    • Thorsten HeuerT

      Feature Request / Question: Soft Wrap at Vertical Edge (Column 80) regardless of window size

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      22
      1 Votes
      22 Posts
      1k Views
      CoisesC

      @fml2 said in Feature Request / Question: Soft Wrap at Vertical Edge (Column 80) regardless of window size:

      @Coises Thank you for the quick implementation! If enebaled, it applies to all documets, not just the current one, right?

      Yes, I made it a single toggle for all documents in both views.

      It would be possible, but considerably more complex, to track documents and enable/disable per document. (I do it with elastic tabstops in Columns++.)

    • Mark BoonieM

      Show (or keep) subsets of a file

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      16
      0 Votes
      16 Posts
      329 Views
      guy038G

      Hello, @mark-boonie and All,

      I said in this post that we can translate the regex’s logic to :

      What_I_do_not_want(*SKIP)(*F)|What_I_want. See also the excellent article, on this topic, at https://www.rexegg.com/backtracking-control-verbs.php#skipfail !

      But, regarding your present example, @mark-boonie, I suppose that we should invert the logic and tell :

      What_I_want_to_keep(*SKIP)(*F)|What_I_want_to_delete

      This means that any multi-lines block, with delimiters Block start and Block end containing the string 80     00010000 is not considered ( text is skipped ) and that any single line contents, with its line-break, due to the (?-s) modifier, must be deleted

      Note that the use of the Backtracking Control Verbs (*SKIP) and (*F) is not mandatory at all ! we could have used this syntax, instead, for similar results :

      SEARCH (?s)^\*Block start\h*((?!\*Block start).)+?80 00010000.+?^\*Block end\h*\R?|(?-s)^.*\R?

      REPLACE (?1$0)

      We simply change the non-capturing group (?:(?!\*Block start).)+? into a capturing group ((?!\*Block start).)+?

      We tell that, in replacement, we must rewrite any block entirely ( $0 ), if the group 1 exists, thus the (?1$0) syntax

      And, as there is no colon char and text after (?1$0, nothing must be taken in account if the group 1 is absent, which is the case in the (?-s)^.*\R? part !

      Best regards,

      guy038

    • donhoD

      Notepad++ v8.9.1 Release

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      12
      6 Votes
      12 Posts
      10k Views
      rdipardoR

      @Pete-Davis, if you’re using WebEdit, a fixed version is already available.

    • W

      The problem with notepad.runMenuCommand

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      10
      1 Votes
      10 Posts
      651 Views
      W

      @PeterJones said in The problem with notepad.runMenuCommand:

      Simple and light is often the opposite of universal.

      This is often the case, but not always.

      @PeterJones said in The problem with notepad.runMenuCommand:

      If you solution is “universal enough” for you, fine;

      Of course, when there is no ideal option, you have to choose the one that is most suitable for the situation.

      @Alan-Kilborn said in The problem with notepad.runMenuCommand:

      Good luck achieving all of those all of the time.
      Or do you have a “pick any 2” or “pick any 3” type rule? ;-)

      Thanks. It happens to everyone at some point ;)
      But it must be universal and fast, even if it means making the code complex.

    • CoisesC

      Columns++ version 1.3: All Unicode, all the time

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      20
      5 Votes
      20 Posts
      1k Views
      CoisesC

      @guy038 said in Columns++ version 1.3: All Unicode, all the time:

      So, I don’t see exactly which rule should be applied, regarding the word definition !?

      and in Columns++ version 1.3: All Unicode, all the time:

      Again, I don’t understand clearly these differences between the two last columns !

      This is not going to be a complete response yet, but some further explanation.

      Even when using ICU, Boost::regex does not implement the same regex language as described in Unicode Technical Standard #18: Unicode Regular Expressions. Some of the differences are more-or-less dictated by the architecture of Boost::regex; others appear to be choices.

      This is a list of category definitions used by Boost::regex when using ICU; the table comes from matching up char_pointer_range in get_default_class_id and char_class_type in lookup_classname:

      alnum U_GC_L_MASK | U_GC_ND_MASK alpha U_GC_L_MASK blank mask_blank cntrl U_GC_CC_MASK | U_GC_CF_MASK | U_GC_ZL_MASK | U_GC_ZP_MASK d U_GC_ND_MASK digit U_GC_ND_MASK graph (0x3FFFFFFFu) & ~(U_GC_CC_MASK | U_GC_CF_MASK | U_GC_CS_MASK | U_GC_CN_MASK | U_GC_Z_MASK) h mask_horizontal l U_GC_LL_MASK lower U_GC_LL_MASK print ~(U_GC_C_MASK) punct U_GC_P_MASK s U_GC_Z_MASK | mask_space space U_GC_Z_MASK | mask_space u U_GC_LU_MASK unicode mask_unicode upper U_GC_LU_MASK v mask_vertical w U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK | mask_underscore word U_GC_L_MASK | U_GC_ND_MASK | U_GC_MN_MASK | mask_underscore xdigit U_GC_ND_MASK | mask_xdigit

      Comparison with the table you referenced shows that Boost::regex does not use the same definitions. In particular, lower and upper are defined to be identical to General Categories Ll and Lu, alpha is defined to be identical to General Category L, and word does not contain all the characters mentioned in the Unicode specification.

      For the most part, Columns++ follows the Boost::regex definitions, though I did not include Mn in word. Also the Boost::regex code for isctype implements some of the classifications directly; I think I am close, but not necessarily identical, for those. It looks as if Boost::regex does define xdigit according to the Unicode spec.

      I think that Boost::regex defines word boundaries in terms of word characters (i.e. \b is equivalent to (?<!\w)(?=\w)|(?<=\w)(?!\w)) and that I wouldn’t be able to change that without forking and modifying Boost::regex code.

      I think the questions are whether Boost::regex is more accurately considered wrong, or just different in its implementation of character classes; and if the latter, which is preferable.

      At present, my estimation is that it would be time-consuming, but not impossible or fragile, to implement the Unicode definitions (aside from word boundaries) as listed in Annex C: Compatibility Properties in Columns++.

      Whether that’s what should be done might still be an open question.

    • Fred MorantF

      "In Find, Regex Search in Current File Limited to "Find Next" Downward Direction Only"

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      6
      0 Votes
      6 Posts
      205 Views
      Fred MorantF

      @PeterJones said in "In Find, Regex Search in Current File Limited to "Find Next" Downward Direction Only":

      Perfect, thank you for the explanation about how the config file is managed.

      One point: I was the one who hallucinated, trying to find a reason for this limitation in regex usage.

      Thanks for the clarification!

      Much appreciated!

    • Anderson NascimentoA

      Monokai and JS versão 8.9.1

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      5
      1 Votes
      5 Posts
      314 Views
      Anderson NascimentoA

      @PeterJones I managed to do it, I uninstalled it again and when it asked about settings, I answered no, upon startup it was like a completely new installation.Screenshot_1.png nnn.png
      When I started up, I changed the theme and it worked, thank you very much for the tips.

    • Troglo37T

      Is There a Way to Prevent Pasted Text from Spreading Out with Rows of Spaces?

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      235 Views
      PeterJonesP

      @PeterJones said in Is There a Way to Prevent Pasted Text from Spreading Out with Rows of Spaces?:

      implementing it in PythonScript today

      Thankfully, I found an old script which did something related, which was easy to update.

      # encoding=utf-8 """in response to https://community.notepad-plus-plus.org/topic/27385/ This will paste the CF_TEXT plaintext from the clipboard, but will convert any series of newline characters into a single space before doing the paste. Because this uses .insertText() instead of putting the modified text back into the clipboard and doing .paste(), it should avoid clobbering the clipboard. (based on @alan-kilborn's clipboard script here: <https://community.notepad-plus-plus.org/post/97132>) """ from Npp import * try: editor3h # third editor, hidden except NameError: editor3h = notepad.createScintilla() def get_clipboard_text_without_newlines(): retval = '' editor3h.clearAll() editor3h.paste() if editor3h.getLength() > 0: editor3h.rereplace(r'[\r\n]+', ' ') # replace all newline seqeuences with a single space retval = editor3h.getText() return retval editor.beginUndoAction() editor.insertText(editor.getCurrentPos(), get_clipboard_text_without_newlines()) editor.endUndoAction()

      This has been tested in the PythonScript 3 plugin. The PythonScript FAQ explains how to install PythonScript plugin, and how to run a script using PythonScript plugin, and even how to assign a keyboard shortcut to the script. Make sure you follow the instructions for PythonScript 3, not PythonScript 2 (as I have not tested under the older plugin syntax, though it will likely work there)

    • Russ JonesR

      Advance cursor past any sequence of non-blank characters and following blank, tab, or newlines

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      250 Views
      guy038G

      Hi, , @russ-jones, @freemeow, @m-andre-z-eckenrode and All,

      Ah… many thanks, @m-andre-z-eckenrode for your valuable input ! Thus, @russ-jones, my macros can be improved as below, just adding a final Esc key stroke :

      <Macro name="End Previous NON-Blank chars" Ctrl="no" Alt="yes" Shift="no" Key="190"> <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> <Action type="3" message="1601" wParam="0" lParam="0" sParam="\S+\K(?=\s)" /> <Action type="3" message="1625" wParam="0" lParam="2" sParam="" /> <Action type="3" message="1602" wParam="0" lParam="0" sParam="" /> <Action type="3" message="1702" wParam="0" lParam="256" sParam="" /> <Action type="3" message="1701" wParam="0" lParam="1" sParam="" /> <Action type="0" message="2325" wParam="0" lParam="0" sParam="" /> </Macro> <Macro name="End Next NON-Blank chars" Ctrl="no" Alt="yes" Shift="no" Key="191"> <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> <Action type="3" message="1601" wParam="0" lParam="0" sParam="\S+\K(?=\s)" /> <Action type="3" message="1625" wParam="0" lParam="2" sParam="" /> <Action type="3" message="1602" wParam="0" lParam="0" sParam="" /> <Action type="3" message="1702" wParam="0" lParam="768" sParam="" /> <Action type="3" message="1701" wParam="0" lParam="1" sParam="" /> <Action type="0" message="2325" wParam="0" lParam="0" sParam="" /> </Macro>

      BR

      guy038

    • ?

      Notepad ++ double context menu showing after uninstalling

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      262 Views
      mpheathM

      The Open With extension is not the Edit with Notepad++ extension. The later is NppShell.

      Open a cmd prompt and enter:

      reg delete "HKCU\Software\Classes\Applications\notepad++.exe"

      Press Return key and if no error, then it will prompt to delete the key and reply with yes.

      Open With creates this key and some others. Removing this key removes the orphaned Open With entry of Notepad++.

      Some installers add this key, the Notepad++ installer currently does not add this key so it does not remove it on uninstall.

      The duplicate entry is something else. Try:

      reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ini" /s

      and will print information about the entries to discover more details about the entries. You may see something like Applications\other.exe and if another ophaned entry, can use a similar command to remove it:

      reg delete "HKCU\Software\Classes\Applications\other.exe"

      Always use care with the registry. Ensure the commands are correct before executing them.

    • PeterJonesP

      FAQ: February Security Announcement

      Watching Ignoring Scheduled Pinned until 3/1/26, 9:17 PM Locked Moved Security
      4
      2 Votes
      4 Posts
      807 Views
      PeterJonesP

      Updates with new clarifications from this comment:

      Target Information

      Kaspersky only saw evidence of victims IP addresses in Vietnam, El Salvador, Australia and the Philippines, and noted, “We observed three different infection chains overall, designed to attack about a dozen machines…”.

      Thus, it wasn’t just “targeted” – out of all the update attempts that would have happened during the June to December timeframe, it appears there were only a dozen victims: everyone else got a normal, unaffected update, with no malicious payload.

      Obvious Side-effect: Notepad++ Not Actually Updated after “Update”

      When the attackers redirected victims, the victims got “updaters” which did nothing to notepad++.exe. If every time that automatic updates ran, you saw Notepad++ actually updated, you were not one of the victims.

      In case the user runs Notepad++ updater, if the version remains exactly the same after the attempted update, the user can check %LOCALAPPDATA%\Notepad++\log\securityError.log to see what happened & report it.

    • Cam KroutC

      Chinese compromise began as early as NP++ v8.6.9

      Watching Ignoring Scheduled Pinned Locked Moved Security
      4
      0 Votes
      4 Posts
      635 Views
      PeterJonesP

      Future readers: if you want more information for the context of this discussion, See the FAQ, which has the best summary I can make, as of 2026-Feb-04; if new information is available, the FAQ will be updated. ALL followups/discussions must go in Topic: autoupdater and connection to temp.sh. This tangent is LOCKED.

    • NppenjoyrN

      Advices to prevent further security vulnerabilities

      Watching Ignoring Scheduled Pinned Locked Moved Security
      4
      0 Votes
      4 Posts
      496 Views
      NppenjoyrN

      BTW:

      5.1-if your home internet speed is fast enough, setup your own web server to your pc under virtualbox(in case of web server software cve’s/rce’s). I or anyone can help with that. Dont forget to hardening server for security.

      IMO, this is BAD advice. To suggest to a non-security specialist who runs this as a hobby, that he should self-host, and try to keep up on all the security hardening, is asking him to get hacked even worse than the hack that already happened. He was literally paying a host to provide such services, and the professionals failed; he has now changed providers to a host who has better security procedures.

      Believe me it’s not that hard to setup a webserver or harden it, especially while backed by a strong community. The risks are different when hosting at home between hosting remotely. The hosting firm may be offered money to hijack, or an out-of-date hosting management software had rce was waiting to be abused.

    • S

      Managing the User Languages tool

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      4
      0 Votes
      4 Posts
      125 Views
      PeterJonesP

      @sagradamoly-stack said in Managing the User Languages tool:

      Is there any way to delete all the interim variations without losing all the work getting to a useful final result?

      It depends on what you mean.

      En masse? No

      One at a time? Yes. In the UDL dialog, select each intermediate UDL from the drop-down, and click Remove. Since it’s likely on the order of a dozen or two, it won’t take you that long – less time than asking here took you, I’d wager.

      without losing all the work

      I mean, deleting the intermediate ones will obviously delete the intermediate stages. If you don’t want to lose them, but don’t want them in the N++ Language menu, use Export to save each to a separate XML file which you can then save in some backup directory, then Remove to take it out of the menu.

    • N

      The real haters can't hate

      Watching Ignoring Scheduled Pinned Locked Moved Boycott Notepad++
      9
      0 Votes
      9 Posts
      3k Views
      PeterJonesP

      @shodanx2 ,

      I normally stay out of the “Boycott” discussions, because they’re a complete waste of time (as is this one, for example, so I’ll be leaving this one again), but it seems really odd that you just started complaining about this a year after you successfully created your account and made your first post. But whatever, the haters are going to hate. (update: never mind, you were whining about this a year ago, too.)

      If the owners of the forum software and the service that they are donating to host our forum (they normally charge people and organizations to host with them, but are giving the hosting for free to us, so beggars cannot be choosers), or the contributors to their ecosystem (not me, not the developer of Notepad++) ever provide a plugin that allowed a “login with XYZ” for any other OAUTH provider, I would enable that in a heartbeat, because I’m all for giving users a choice. I cannot speak for the rest of the internet, but the email-only didn’t work here, despite your repeated protestations, for whatever reason, so I’ve tried to help give users as much choice from OAUTH providers as possible; unfortunately, those are the only two for now.

      Our choice of login has nothing to do with censoring people from speaking (as should be blatantly obvious, because we literally provide a topic for whining about Notepad++ in a forum dedicated to advocating for and helping people use Notepad++ … the N++ developer is highly into free speech), nor “shilling for the techbro cloud elites”, and everything to do with trying to make the user experience as good as possible for as many as we can.

    • Min LiuM

      Freezing when pasting large amount of text between quotes or heredoc (language PHP)

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      13
      2 Votes
      13 Posts
      591 Views
      Min LiuM

      @mpheath Cheers thank you for the detailed explanation! i will give this a go.

    • M Andre Z EckenrodeM

      Mass cursor movement via Python

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      4
      0 Votes
      4 Posts
      169 Views
      M Andre Z EckenrodeM

      @Alan-Kilborn

      Thanks for the suggestion, though I think .lineUp() is sufficient for my purposes in this case, since I will need to repeatedly go up the same number of lines, and column isn’t a concern because I’ll always be landing on blank lines.

    • temp trashT

      precompiled plugins DLL c/w v8.9.1

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      77 Views
      temp trashT

      @PeterJones

      Ah VERY HELPFUL.

      I did not realize that what I had quoted was actually a listing of tab headers.

      The shading was too subtle for me to recognize that this was not an errmsg, but were actually clickable tabs.

      When v8.9.1 started, the tab which was active when opening PluginAdmin was (for whatever reason) the ‘Incompatible’ tab which was entirely blank – leading me to make my error.

      Old people are such fun!

      Thank you so much, all is well. Well, at least it is with NPP, which is the most one can hope for at the moment - the wider world seems to be slipping beyond repair.

    • C

      np++ and USB moving to another PC

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      3
      0 Votes
      3 Posts
      68 Views
      PeterJonesP

      @cashfields ,

      Your post would have been much easier to read if you actually typed your text in the post, rather than typing your text in the image.

      It looks like what you would like is the ability to have the file history be set to “relative” instead of “absolute”. Unfortunately, the developer already rejected a feature request which requested that you be able to store a session (File > Save/Load Session… commands) automatically as relative. And if sessions were too complicated to do that for, in his mind, then doing it for the file history is definitely right out.

      However, if you save a session, and then edit it to be relative, I believe it works … so you could then load the relative session anytime your USB changes drive letter, and it would hopefully work for you.

      (I know it’s not exactly what you’re asking for, but given his rejection of that feature request, it’s the best you’re going to get.)

      Or, for a poor-man’s session: make a batch file that opens each file relatively in the batch file.