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
    • Vince AmanV

      Save and Restore Change History Markers

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      10
      1 Votes
      10 Posts
      510 Views
      Vince AmanV

      @mpheath ,

      Thanks again for you reply! I plan to test your BufferRestore script after my next “break” in my current project(s). After looking closer at your post and web page, this looks to be a good option for me to use until NP++ has a built in tool…

      I do own a rack of servers and plan to spin up a couple extra VMs once I release my own platform/environment for my apps (within the next couple months). The challenge with one of the (main) current platforms which I’m using is, while I pay annually to be a developer for them, their licensing does not allow me to run on more than 1 PC at a time, so it requires me to log out/in each time I switch between PCs or VMs. I can’t maintain the variable “state” if forced to log out.

      There are many additional issues with Windows Rebooting… When the current test environments get “killed”, all the opened files are now locked and all the variables are flushed. So it requires unlocking the files, and recreating the previous workflow to recreate the variable “state”. Using a log file doesn’t work well in this environment, because it typically goes back beyond the last save… and could only be applied if the saved file was in the exact state as when the log file was started… not sure if that makes sense?

    • Barry LortB

      Move Line Up

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      6
      1 Votes
      6 Posts
      282 Views
      Barry LortB

      @guy038

      More good information. Thank you!

      Barry

    • h-jangraH

      Inline markdown preview & better note taking plugin idea

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      4
      0 Votes
      4 Posts
      315 Views
      h-jangraH

      Thanks @Coises & @rdipardo
      I tried this and its working but still not better. You can suggest anything if I can add more styling.

      10f9d4ce-57f8-4d4c-a375-a9f4450b524e-image.png

      h-jangra/BetterMarkdown/releases/tag/0.1

    • donhoD

      Notepad++ 8.8.8 release

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      3
      0 Votes
      3 Posts
      273 Views
      Rolf WittR

      @MelchiorGaspar

      Looks like a Windows 11 bug. When an installer calls regsrv32.exe, dllhost.exe crashes. This also happens with other installers. However, I don’t know where to report this error to Microsoft.
      The ‘good news’ is that apart from the extended installation time, there don’t seem to be any other consequences.

    • MM tsuchiM

      Notepad++ 8.8.7 "select and search next/previous (Ctrl-F3 / Ctrl-Maj-F3) don't work anymore

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      117 Views
      guy038G

      Hello, @mm-tsuchi, @terry-r and All,

      @mm-tsuchi, The behavior, that you’ve found out, seems definitively a bug , I’m afraid :-((

      Let’s test with the beginning of the change.log file, copied in a new tab :

      Notepad++ v8.8.7 new features & bug-fixes: 1. Sign Notepad++ binaries with GlobalSign certificat to fix false-positive alerts. 2. Fix Monitoring in one view affects selections and position in second view. 3. Fix Shortcut Mapper memory leak issue. 4. Enhance Perl FunctionList for class. 5. Fix pressing Alt or Tab causes controls redrawing problem in UDL dialog. Notepad++ v8.8.6 new features & bug-fixes: 1. Add capacity of pasting multiline into Find/Replace fields. 2. Improve UAC in Notepad++ for seamless elevated operations. 3. Fix Pin Tab operation being too long with many opened documents. 4. Add 2 new full-readonly modes via command line argument (-fullReadOnly & -fullReadOnlySavingForbidden). 5. Add apply/remove read-only for all documents commands. 6. Column Editor enhancement: GUI input fields now support radix to match the output format. 7. Add Window dialog "File Modified Time" sorting capacity. 8. Fix NPPN_CMDLINEPLUGINMSG not working issue & define the pluginMessage usage protocol. 9. Fix pasting from column mode to multi-selection issue due to different EOL. 10. Add NPPM_GETNPPSETTINGSDIRPATH message to get Notepad++ settings directory path. 11. Enhance SQL function list parser. 12. Fix C# function list not working with comments. 13. Add function list ability for CSS. 14. Allow user to customize max selected chars to auto-fill "Find what" field. 15. Restore undo/redo behaviour in Find/Replace fields after Copy/Paste or Ctrl-F. 16. Fix text corruption issue caused by selection within multibyte characters. 17. Fix DOCTYPE styling in xml and html. 18. Fix double clicking on edit zone border creates a new tab issue. 19. Update cURL in WinGUp (Notepad++ updater) for fixing security issue CVE-2025-5399.

      And let’s start with a fresh portable v8.8.7 release of N++. After launching Notepad++.exe for the first time, if you move to the Preferences... > Searching panel, you should see this snapshot :

      ba0aed16-e512-4b4d-bf11-8d3cbde6d7b5-Capture d'écran 2025-11-18 103552.png

      So, you can verify that, by default, the two options Fill Find Field with Selected Text and Select Word Under Caret when Nothing Selected are checked

      In this configuration, no problem at all regarding the Select and Find Next and Select and Find Previous commands which work as expected !

      Now, as soon as you unchecked the Fill Find Field with Selected Text option, note that it also unchecks, automatically the Select Word Under Caret when Nothing Selected option and the Max characters to Auto-Fill Find Field from Selection option, as well !

      With that new configuration :

      Double-clic on the first Add word of the text

      Open the Find dialog ( Ctrl + F )

      => The Find what zone should be empty ( logical, because of the settings ! )

      Note that the Wrap around option is checked by default and the search mode is set to normal

      Type the word Add in the Find what zone

      Click once on the Find next button to jump to the next occurrence of the Add word

      Close the Find what zone ( Esc )

      You can check that the F3 / Shift + F3 shortcuts ( Normal search ) or the Ctrl + Alt + F3 / Ctrl + Shift + Alt + F3 shortcuts ( Volatile search ) work as expected

      However, the Select and Find Next and Select and Find Previous commands do nothing. This is also logical because of the new settings !

      Now, just put the caret within any Add word. if you hit the F3 key, it does find the next Add word ! Don’t be mistaken : it found the Add word just because the Find what zone still contains the Add word as the Select Word Under Caret when Nothing Selected is uncheked

      To be convinced, simply put your caret within an other word Fix : hitting the F3 key still search the next occurrence of the Add word and not the Fix word !

      Now, double-click on any Fix word. The only possibility to search this new word is to use the Alt + Ctrl + F3 or Alt + Ctrl + Shift + F3 shortcuts. However, if you open the Find dialog, as this kind of search is volatile, the Find what zone will still contains the Add word !

      So, IMO, how to fix this issue :

      Forbid the Select And Find ... options when the Fill Find Field with Selected Text option, in settings, is unchecked. This seems logical as current selected text never fills the Find what zone !

      But, allow the Select Word Under Caret when Nothing Selected setting to be checked, independently of the Fill Find Field with Selected Text option. So, putting caret within any word, would still select this word and placed it in the Find what zone of the Find dialog for search !

      Best Regards,

      guy038

    • meM

      Printing (laser) black on white darkness

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      68 Views
      Alan KilbornA

      @me

      I printed out a cookie recipe in NP++ and LO Writer

      Try to be more explicit. I actually use LibreOffice and, until @PeterJones explicitly stated it in his response, I had no idea what you were talking about when you said “LO”.

    • J

      Replacing text blocks with ToolBucket

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      47 Views
      PeterJonesP

      @JuergenBelle ,

      Further to what @h-jangra said, since N++ v8.8.6, you can just paste your multi-line text into the Replace, and use the Search @h-jangra suggested, and you don’t need the plugin at all…

      If your replacement has parentheses () or dollar signs $, it might not work as you expect, so you might have to escape them, as described in the user manual (https://npp-user-manual.org/docs/searching/#substitutions)

    • donhoD

      Notepad++ 8.8.8 release candidate

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      2
      7 Votes
      2 Posts
      957 Views
      donhoD

      FYI, v8.8.8 RC has updated to RC2 to enhance the security of auto-update.

    • C

      possible to create a openfile dialog under jn-npp-plugin ?

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      5
      0 Votes
      5 Posts
      299 Views
      C

      after a look at jn-npp-plugin on github it seems Win32 API is not available in win x64 and i didn’t find other way to use openfiledialog…
      i am looking at python plugin now .

      thanks for your help

    • S

      autoupdater and connection temp.sh

      Watching Ignoring Scheduled Pinned Locked Moved Security
      8
      0 Votes
      8 Posts
      2k Views
      John Smith 4J

      @donho I see in v8.8.8 release there was an issue addressed with WinGup. Could you elaborate what caused this behavior?

    • sound-fxS

      Scripts to align text

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      4
      3 Votes
      4 Posts
      2k Views
      sound-fxS

      The following code supports PythonScript 3.0.23 as well as earlier versions of PythonScript 3.x.

      #------------------------------------------------------------------------ # If the character specified in the current selection is a white space, # then prompt the user to enter the alignment character (or characters), # using this character as the initial default. #------------------------------------------------------------------------ default_align_char = ',' from enum import Enum class PaddingSide(Enum): LEFT = 0 RIGHT = 1 def align_selected_text(max_align_char_count = None, padding_side = PaddingSide.LEFT): """Insert padding into the lines in the selection, as needed, to align up to max_align_char_count instances of a specific character or string of characters The default is to align all instances of the specific character. At present, the alignment character is taken as the character at the top of the current selection. You can uncomment some code below to change this policy to instead take the alignment character from within the selection at whichever end has the cursor. Either way, if that character is white space, the user is prompted to type the character (or characters). If you really wish to align on a white space character, you can just click OK at the prompt. When prompted to type the alignment character, the user may enter a sequence of characters, e.g., "-->", in which case the alignment is on the instances of that entire character sequence. For example, if the user enters "-->" at the prompt, then instances of the "-" character get aligned only if they're followed immediately by the characters "->", while instances of, say, "-1" and "- " remain unaltered. If there is no current selection, then aligns all lines in the editor. If there is a current selection, then aligns only the lines that are at least partially included in the selection, and the selection is changed to the entire block of newly-padded lines. Parameters ---------- max_align_char_count : positive integer, optional The maximum number of instances to align of the specific character. For example, set to 1 to align only the first instance of the character on each line. The default is to align all instances of the specific character. """ from Npp import editor #---------------------------------------------------------------------------- # For the alignment character, take the character just inside the bounds of # the selection block (at either the start or the end, as determined below). #---------------------------------------------------------------------------- editor.targetFromSelection() selected_text = editor.getTargetText() # Use this code to get the align_char unconditionally from the start # of the selection. align_char = selected_text[0] # Optionally use this code to get the align_char from within the selection # at whichever end has the cursor. # (startByte, endByte) = editor.getUserCharSelection() # if startByte == editor.getCurrentPos(): # align_char = selected_text[0] # else: # align_char = selected_text[-1] # If the character from the selection seems implausible as the # align_char, then prompt the user for it. if align_char.isspace(): from Npp import notepad global default_align_char align_char = notepad.prompt('Align character:', 'Enter Alignment Character', default_align_char) if align_char is not None: default_align_char = align_char #---------------------------------------------------------------------------- #%% Get the lines of text within the selected alignment block #---------------------------------------------------------------------------- (startLine, endLine) = editor.getUserLineSelection() startPos = editor.positionFromLine(startLine) endPos = editor.getLineEndPosition(endLine) text_lines = editor.getTextRangeFull(startPos, endPos).splitlines(True) #---------------------------------------------------------------------------- # Remember whether there is a user-selected block, so we can restore a # corresponding selection after aligning the text. #---------------------------------------------------------------------------- restore_selection = editor.getSelectionStart() != editor.getSelectionEnd() #---------------------------------------------------------------------------- # Align all instances of align_char within the lines of text #---------------------------------------------------------------------------- if align_char is not None: # Enable the following to save the align_char, however it was determined, # to be the default_align_char when prompting for it next time. # default_align_char = align_char padding_side_offset = padding_side.value * len(align_char) if max_align_char_count is None: align_char_count = max(line.count(align_char) for line in text_lines) else: align_char_count = max_align_char_count start = 0 for instance in range(align_char_count): # Set the target column using the index of the align_char, ignoring # immediately preceding space, or the length of the line tgt_char_col = max(len(line[:line.find(align_char, start)].rstrip()) for line in text_lines) for (idx,line) in enumerate(text_lines): align_char_col = line.find(align_char, start) if align_char_col >= 0: text_lines[idx] = line[:align_char_col+padding_side_offset].rstrip().ljust(tgt_char_col) \ + line[align_char_col+padding_side_offset:] start = tgt_char_col + len(align_char) editor.setTarget(startPos, endPos) editor.replaceTarget(''.join(text_lines)) if restore_selection: startPos = editor.positionFromLine(startLine) endPos = editor.getLineEndPosition(endLine) editor.setSelectionStart(startPos) editor.setSelectionEnd(endPos) if __name__ == '__main__': align_selected_text()
    • h-jangraH

      NppVim 1.6.0.0 Release - what's next macros?

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      1
      3 Votes
      1 Posts
      75 Views
      No one has replied
    • Jeff EspositoJ

      Notepad++ VERY slow to open

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      16
      0 Votes
      16 Posts
      11k Views
      MarcosM

      Hello!

      I’m having a similar problem with NPP being slow to open, and I believe it’s related to the fact that I have several “draft” (unsaved) files saved, since I have the options enabled: backup and remember last session.
      This has already been reported in another post:

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

      In my case, I have an SSD and it takes about 20 seconds to load about 200 files. So it spends about 0.1 seconds per file.

      I did some tests using Process Monitor, as shown in the image below.

      notepad.png

      In this case, it seems that NPP keeps trying to create files in the “Program Files” folder, but it gives a “NAME NOT FOUND” error.
      After that, it goes to the “AppData/Roaming…” folder where the backup files are located.

      In short, based on this result, does anyone have any idea how to try to solve this delay, perhaps caused by failures or repeated attempts to read/write the backup files?

    • h-jangraH

      New Vim modal editing plugin release

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      6
      1 Votes
      6 Posts
      4k Views
      h-jangraH

      @PeterJones @guy038 @W-H @Ava-Thompson and everyone

      Thanks a lot for checking out NppVim and for all the support. Really appreciate the feedback and the nice words.

      Quick updates:

      Repo here: https://github.com/h-jangra/NppVim I’m still actively working on the plugin, adding more motions, fixing bugs and making things feel closer to real Vim. More text objects, better repeat for t/f etc all in progress.

      I’m glad to hear interest in supporting the project. I’ll set up GitHub Sponsors soon and will update this thread.

      Thanks again for trying it out and giving feedback, it motivates me to keep improving it.
      Please feel free to open issues on GitHub for any bugs or features you want prioritized.

    • Wilson Azambuja Porto Alegre RSW

      Mover abas

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      3
      0 Votes
      3 Posts
      278 Views
      Mark OlsonM

      I seem to recall that there was a bug in the main GitHub repo about this kind of issue, where it was extremely slow to move tabs when a lot of tabs were open.

      I also seem to recall that this issue was solved, probably in the last year. I’d recommend that @Wilson-Azambuja-Porto-Alegre-RS install the most recent Notepad++ version and see if that fixes the problem.

    • AlanA

      notepad++,exe- bad image

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      239 Views
      pbarneyP

      @Alan, listen to @PeterJones when he says to scan your computer for viruses. TextShaping.dll is commonly used in DLL sideloading exploits, and if your executables are trying to call it when it resides in a place it doesn’t belong (your Notepad++ directory), then there’s a good chance your computer has been hacked.

      That doesn’t mean you should freak out just yet, just take some steps to ensure that you’re not hacked.

    • Michal ŠunkaM

      Update CLI command

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      4
      0 Votes
      4 Posts
      5k Views
      D

      All the gup.exe does is to check if there is a newer version than specified by the string input parameter is available. It does not handle the update itself. You would have to code it for yourself.

      For example like this in Powershell 5.1 for the 64bit version of Notepad++.

      [string]$ScriptFolder = $PSCommandPath | Split-Path -Parent $Notepad = Get-ItemProperty -LiteralPath 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++' $InstalledVersion = $Notepad.DisplayVersion $UpdateCheck = Invoke-WebRequest -Uri "https://notepad-plus-plus.org/update/getDownloadUrl.php?version=$InstalledVersion" $UpdateCheckAnswer = ([xml]$UpdateCheck.Content).GUP if ($UpdateCheckAnswer.NeedToBeUpdated -eq 'yes') { $Filename = $UpdateCheckAnswer.Location.Split('/')[-1] Invoke-WebRequest -Uri $UpdateCheckAnswer.Location -OutFile "$ScriptFolder\$Filename" & "$ScriptFolder\$Filename" '/S /closeRunningNpp' }