• Help with NUL in dll file

    3
    1 Votes
    3 Posts
    846 Views
    mkupperM

    @Joshua-Rowsom You are in a somewhat dark small wooden cabin that has been used to store cloth bags of gunpower for decades. There is gunpower dust all over the place. Sunlight is streaming through a small window and you can see there is also a lot of dust in the air.

    You have a box of matches.

    What do you do?

    Editing DLL files is much like playing with a box of matches in this cabin.

    The message you saw probably looked like what is below though I’m puzzled that you would get this for a DLL file unless you were playing the game at the time you were editing the file and the game is making changes to the DLL.

    --------------------------- Reload --------------------------- "c:\the\path\to\your\dll\file" This file has been modified by another program. Do you want to reload it and lose the changes made in Notepad++? --------------------------- Yes No ---------------------------

    When you make changes to a file using Notepad++ then your changes are not immediately saved to the file you are working on. If someone or something else makes changes to the file at this point then you will see the warning notice about “This file has been modified by another program.” Your choices are:

    Clicking “Yes” means that you intend to abandon the changes you had made within Notepad++ to the file. Notepad++ will reload the file so that you are seeing the current version of it. Clicking “No” means that you intend to continue working on the file in Notepad++. If you then save the file then you will be overwriting whatever changes that other program made.

    When I get the “This file has been modified by another program” message and I was not expecting it then I usually select “No” but then Save-As the file I’m working on to a new name. I then compare the original file against the copy I just saved. That way I can see the changes someone or something else made vs. the changes I made and based on that decide if and how to update the original file.

    Of course, none of that helps you with the NUL in dll file question though @PeterJones answer looks good.

  • Notepad++ writes a lot to disk after closing

    7
    0 Votes
    7 Posts
    480 Views
    mkupperM

    @abracadabruh1 said in Notepad++ writes a lot to disk after closing:

    Resource Monitor,

    Resource Monitor displays the number of bytes per second. This is unrelated to the number of bytes written. For example, if it takes you one millionth of a second to write one byte then Resource Monitor says you are writing at one million bytes per second.

    Other tools such as Microsoft’s Sysinternals procmon can better show you which files an application is writing to and the number of bytes in each write. Unfortunately, procmon is not perfect as ideally what we want is a nice list of the files written to and the total bytes written.

  • Two search boxes each View

    5
    2 Votes
    5 Posts
    531 Views
    mkupperM

    @Michael-Döring said in Two search boxes each View:

    My question is whether I can keep a search box each view in parallel. I often have to search for separate things in both views and it would be a great relief if I didn’t have to type everything twice every time.

    One option is to take advantage of Notepad++'s bookmarking feature. Use Ctrl-M to pull up the Mark dialog box and enable the Bookmark line checkbox. Do the first search as a “Mark”.

    Switch to the Find tab and enter the second pattern you want to search for and do the search.

    Close the find/Replace/…/Mark box.

    Now you can use the F2 function key to jump to the next bookmarked line (the first pattern you searched for) and the F3 function to jump to instances of the second pattern. Shift+F2 and Shift+F3 both work and will go to the previous pattern 1 or pattern 2 as desired. Ctrl-F2 will toggle bookmarks on a line. I like this as I can do a mark to bookmark lines in a file I. As I then visually inspect the lines and if I no longer need to deal with that item I do Ctrl-F2 to switch the bookmark on that line off. The marked highlighter makes it easy for me to see where on the line my search had matched.

    Also, I don’t know if you are aware that the Find what field in search box is a drop down list of the most recent searches. Click the ˅ down arrow at the right side of the Find what field. You don’t need type everything twice but instead can pick out recent things you have searched for from the drop down list.

  • 0 Votes
    10 Posts
    11k Views
    Mark OlsonM

    @guy038
    Your regex is better if everything is quoted, but that’s not really what I meant.

    In most CSV files, a column is only wrapped in quotes if it contains the separator or a newline.

    3223309f-ecd6-4839-adbd-c3ff8c9fe1db-image.png

    In the above example (pretty colors courtesy of CSVLint), most columns aren’t wrapped in quotes except column 3 of row 5 and column 2 of row 6. The other part of my regex is the (?:[^"]|\\")* alternation inside the quotes, which is necessary to allow an escaped quote character to be present inside quotes.

    Using my column regex (?'column'(?:(?!")(?:(?!\r\n)[^,])*(?<!")|"(?:[^"]|\\")*")) converts

    nums,names,cities,date,zone,subzone,contaminated nan,Bluds,BUS,,1,b,FALSE 0.5,dfsd,FUDG,12/13/2020 0:00,2,c,TRUE 1.2,qere,GOLAR,,3,f,TRUE 3.4,flodt,"comma,in \"column\"",,4,q,FALSE 4.6,"newline in column",QUZ,10/17/2014 0:00,5,"",TRUE 7,Unyir,MOKJI,5/11/2017 0:00,6,i,TRUE

    to seven lines of a,b,c,d,e,f,g as expected.

  • Possible pattern to skip some numbers

    2
    2 Votes
    2 Posts
    192 Views
    Alan KilbornA

    @CodeNameLin said in Possible pattern to skip some numbers:

    edit in bulk

    I suppose you have to say more about what this means, before someone can provide a good answer.

  • 3 Votes
    3 Posts
    242 Views
    Bill MillerB

    @Coises said in Is there a way in version 8.5.8 to remove the line number column down the left side of the page? I find it to be very visually intrusive and unnecessary.:

    Coises
    @Bill Miller
    about an hour ago

    @Bill-Miller said in Is there a way in version 8.5.8 to remove the line number column down the left side of the page? I find it to be very visually intrusive and unnecessary.:

    Is there a way in version 8.5.8 to remove the line number column down the left side of the page? I find it to be very visually intrusive and unnecessary.

    Settings | Preferences… | Margins/Border/Edge | Line Number

    Uncheck Display.

    I’m glad Word Wrap worked. We’ll give you an upvote so you have reputation. I think there is work in progress to fix that limitation when it comes to replying — others who stumble on this can avoid it by removing the pre-filled quotation and just writing new reply text.

    You’re my hero Coises. Thank you for riding in to my rescue once more.

  • Setting Right Side Margin

    3
    1 Votes
    3 Posts
    903 Views
    Michael VincentM

    @Bill-Miller

    From the menu:

    View => Word wrap

    Otherwise, what you are asking is not really possible in a text editor. Try a word processor instead.

    Cheers.

  • -1 Votes
    4 Posts
    631 Views
    Alan KilbornA

    @guy038 said :

    SEARCH (?s-i)^\h*BEGIN_BOUNDARY((?!ABSENT_WORD).)+?END_BOUNDARY.*?$\R

    Maybe this is better without capturing into group1?, i.e. :

    SEARCH (?s-i)^\h*BEGIN_BOUNDARY(?:(?!ABSENT_WORD).)+?END_BOUNDARY.*?$\R

    Also, OP said nothing about what comes before the word that begins the block nor what comes after the word that ends the block (assumption is the begin-word and the end-word are different) so thus maybe this is an even better expression:

    SEARCH (?s-i)BEGIN_BOUNDARY(?:(?!ABSENT_WORD).)+?END_BOUNDARY

    It’s a pity the OP never returned to either provide more specifics (and sample data) or to say whether or not the originally proposed solution was successful.

  • Need help with regex for XML removal

    11
    0 Votes
    11 Posts
    1k Views
    Alan KilbornA

    @guy038 :

    Interesting. I hadn’t thought of it as any sort of “general” solution to a problem!

    [ But, really, there already was the makings of a general solution to half of the problem, from you (ref. HERE) ]

    A couple of notes:

    Note 1:

    IF RR = ?1$0:, the complete BSR…ESR sections, WITHOUT the FR string, are deleted

    In this variant of the replace expression, the : isn’t necessary, thus:

    IF RR = ?1$0, the complete…

    Note 2:

    Since the overall regex uses group1, it isn’t available in the BSR, ESR, FR and even the RR subexpressions.

    Thus a user of this would have to keep in mind that if he is using further grouping inside these expressions, that he has to think in terms of group2 and above.

    This is definitely unlike another templated regex solution I use a lot, ref. HERE, where the user does not have to keep this in mind.

  • Regex to Find Consecutive Uppercase Letters

    5
    0 Votes
    5 Posts
    661 Views
    Alan KilbornA

    @Dick-Adams-0 said in Regex to Find Consecutive Uppercase Letters:

    I didn’t realize the case sensitivity flags had that effect

    A number of people have argued that for regex the Match case checkbox shouldn’t apply, and, unless the (?i) flag is used in the regex, that all regexes should be case sensitive.

  • 1 Votes
    4 Posts
    644 Views
    xomxX

    @PeterJones said in Working with sessions doesn't work very well here... and also erase the session file:

    *6-There is a serious problem when I first open a session because NP++ simply deletes the content of one of the sessions, from the “.nps” file.i.e. one of the nps files runs out of content and I have to recreate it from scratch.

    Do you have an exact sequence of events that replicates this?

    I think (did not check that myself yet) that this is what these patches are intended for:
    Do not modify user created session even for inaccessible files
    Fix user created session saved on exit issue if multi-Inst is enabled
    Fix user created session modified in multiInst mode

    These patches will be in the upcoming N++ version (probably v8.5.9).

    And there will be the new read-only placeholders feature (for the momentarily inaccessible session files) as well.

  • How do I turn on the colors to improve readability.

    4
    0 Votes
    4 Posts
    2k Views
    rdipardoR

    @Peter-Smids said in How do I turn on the colors to improve readability.:

    That’s right, it’s YAML, but how do I get these colors on?

    A limited number of Notepad++ themes define styles for YAML. You can try one of these, although none of them resemble your screen capture (of Sublime Text…?):

    DansLeRuSH-Dark DarkModeDefault Deep Black Hello Kitty HotFudgeSundae Khaki MossyLawn Navajo Obsidian Solarized-light Solarized Vim Dark Blue Zenburn

    Assuming you prefer a dark theme, you can customize one from the list (e.g., “Deep Black”) using the Style Configurator:

    yaml-deep-black-styled.png

    Another option is to add the YAML file type to a theme that doesn’t have it yet. First, do some minor customization of the target theme so it gets copied into %AppData%\Notepad++\themes (if N++ is installed for all users; otherwise just look in the themes directory wherever your portable N++ is). Open the theme’s XML file and paste these definitions anywhere under the /NotepadPlus/LexerStyles path:

    <LexerType name="yaml" desc="YAML" ext=""> <WordsStyle name="DEFAULT" styleID="0" fgColor="ADDB67" bgColor="262626" colorStyle="1" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="COMMENT" styleID="1" fgColor="A0A0A0" bgColor="262626" colorStyle="1" fontName="" fontStyle="2" fontSize="" /> <WordsStyle name="IDENTIFIER" styleID="2" fgColor="82AAFF" bgColor="262626" colorStyle="1" fontName="" fontStyle="1" fontSize="" /> <WordsStyle name="INSTRUCTION WORD" styleID="3" fgColor="F08080" bgColor="262626" colorStyle="1" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" /> <WordsStyle name="NUMBER" styleID="4" fgColor="FFC600" bgColor="262626" colorStyle="1" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="REFERENCE" styleID="5" fgColor="C0FFFF" bgColor="262626" colorStyle="1" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="DOCUMENT" styleID="6" fgColor="E385FF" bgColor="262626" colorStyle="1" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="TEXT" styleID="7" fgColor="93CDBA" bgColor="262626" colorStyle="1" fontName="" fontStyle="0" fontSize="" /> <WordsStyle name="ERROR" styleID="8" fgColor="CD6000" bgColor="FFCE76" colorStyle="1" fontName="" fontStyle="1" fontSize="" /> </LexerType>

    After saving the file and restarting N++, you can customize the newly YAML-aware theme in the Style Configurator.

  • Trying to get ruby's functionlist to work with .cr files

    3
    0 Votes
    3 Posts
    255 Views
    Girng RodriguezG

    Roger. Thanks so much PeterJones, have a great rest of your week!!

  • Multi selection and multi edit

    64
    2 Votes
    64 Posts
    217k Views
    donhoD

    FYI: This feature is implemented in Notepad++ core and it’ll be available in the next release.
    You may want to check the PR to see if it meets your need:
    https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14313

  • HTML pages view

    10
    0 Votes
    10 Posts
    2k Views
    mkupperM

    @PeterJones and others

    I am running 8.5.8 but apparently the Run / Launch in Firefox Ctrl+Alt+Shift+X that’s available to me is a legacy thing from a previous version of npp. I usually double check a portable 8.5.8’s behavior before commenting but forgot to do that earlier in the thread. My portable 8.5.5 does not have Run / Launch in Firefox

    That made me curious… It turns out the culprit, if you want to call it that, is an entry in my shortcuts.xml file:

    <UserDefinedCommands> <Command name="Launch in Firefox" Ctrl="yes" Alt="yes" Shift="yes" Key="88">firefox &quot;$(FULL_CURRENT_PATH)&quot;</Command> </UserDefinedCommands>

    I dug further and found that up until npp v7.6.2 that the shortcuts.xml file included:

    <UserDefinedCommands> <Command name="Launch in Firefox" Ctrl="yes" Alt="yes" Shift="yes" Key="88">firefox &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in IE" Ctrl="yes" Alt="yes" Shift="yes" Key="73">iexplore &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in Chrome" Ctrl="yes" Alt="yes" Shift="yes" Key="82">chrome &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in Safari" Ctrl="yes" Alt="yes" Shift="yes" Key="65">safari &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Get PHP help" Ctrl="no" Alt="yes" Shift="no" Key="112">http://www.php.net/$(CURRENT_WORD)</Command> <Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command> <Command name="Open file in another instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_FULL_FILE_PATH) $(CURRENT_WORD) -nosession -multiInst</Command> <Command name="Send via Outlook" Ctrl="yes" Alt="yes" Shift="yes" Key="79">outlook /a &quot;$(FULL_CURRENT_PATH)&quot;</Command> </UserDefinedCommands>

    From npp v7.6.3 to v7.9.5 much of that was commented out:

    <UserDefinedCommands> <!-- The following shortcuts are dangerous if your computer is compromised. (But if your computer is compromised, EVERYTHING IS DANGEROUS!) Remove the comment and use them at your own risk!!! <Command name="Launch in Firefox" Ctrl="yes" Alt="yes" Shift="yes" Key="88">firefox &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in IE" Ctrl="yes" Alt="yes" Shift="yes" Key="73">iexplore &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in Chrome" Ctrl="yes" Alt="yes" Shift="yes" Key="82">chrome &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Launch in Safari" Ctrl="yes" Alt="yes" Shift="yes" Key="65">safari &quot;$(FULL_CURRENT_PATH)&quot;</Command> <Command name="Send via Outlook" Ctrl="yes" Alt="yes" Shift="yes" Key="79">outlook /a &quot;$(FULL_CURRENT_PATH)&quot;</Command> --> <Command name="Get PHP help" Ctrl="no" Alt="yes" Shift="no" Key="112">http://www.php.net/$(CURRENT_WORD)</Command> <Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command> <Command name="Open file in another instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_FULL_FILE_PATH) $(CURRENT_WORD) -nosession -multiInst</Command> </UserDefinedCommands>

    Starting with v8.0 the commented out section was removed.

  • Regex help using find for the first 15 characters only.

    2
    0 Votes
    2 Posts
    896 Views
    PeterJonesP

    @Caner-Ak ,

    Yes, using single character matches, quantifiers/multiplying operators and anchors: For example, ^.{14}U will only match “start-of-line, then 14 of any character, then a U”.

    Note: When using . to match any character, make sure you have the correct state of . Matches Newline or use the equivalent search modifier (?-s)/(?s) in the regex.

    ----

    Useful References Please Read Before Posting Template for Search/Replace Questions Formatting Forum Posts Notepad++ Online User Manual: Searching/Regex FAQ: Where to find other regular expressions (regex) documentation
  • PythonScript: Script not working

    3
    0 Votes
    3 Posts
    437 Views
    PeterJonesP

    @Fuel-DZN said in PythonScript: Script not working:

    How is it matching the contents of the file if it just closed it?

    Either a bug in your logic, or a race condition. If it’s a bug in your logic, it’s not really on-topic for a Notepad++

    But if it’s a race condition, it’s got to do with the way that Plugins ask Notepad++ to perform actions: In case you didn’t know, Notepad++ actions take time (dozens or hundreds of milliseconds are not uncommon action times), and the Plugin Communication messages that the notepad and editor objects wrap around often don’t wait until the action is complete before returning control to the plugin (which in this case is the PythonScript plugin, which then continues executing your script).

    So your script tells Notepad++ to close the file, the application says “okay, I will”, and then proceeds to take a significant fraction of a second to close the file. In the meantime, your script gets the “okay, I will” message and then says “good, I’ll continue running the next commands”.

    If you were going to continue to do something more after the file were closed, I would say that you should probably put in a 500ms - 1000ms wait after doing the close, just to make sure that Notepad++ has time to finish it.

    If you are not planning on doing anything after, then I would suggest adding in logic to exit the script (warning: exit() doesn’t do what you think it does in PythonScript [when it kills the Python interpreter, it also closes Notepad++], so you’ll want flags and if-statements to just quickly exit out of your script, or throw an exception, which PythonScript handles more gracefully (without exiting Notepad++).

    How can it have a match and also no match?

    Either because of the race condition (above) or because of another logic bug. If it’s the race condition, then it’s explained above. If it’s a logic bug on your part, that’s just part of programming, and not specific to Notepad++ or the PythonScript interface with Notepad++, so is not on topic here.

  • 0 Votes
    3 Posts
    276 Views
    Fuel DZNF

    @Alan-Kilborn Thanks, that worked. I had tried that but forgot to put it after the notepad.activateBufferID line.

  • Break Text ever x Characters (keeping sentence / paragraphs)

    3
    0 Votes
    3 Posts
    428 Views
    Andrew CaseyA

    @Coises Wow that is amazing - will save so much time thanks

  • 0 Votes
    7 Posts
    3k Views
    Alan KilbornA

    I wonder what the rationale was for allowing multiple shortcuts for the same Scintilla command, but only one shortcut for non-Scintilla commands?

    Perhaps because “Copy” (and related) command is (or used to be) very common in apps as Ctrl+Insert as well as Ctrl+c?

    I wonder how hard it would be to allow ALL commands to have multiple shortcuts. (The current workaround is to define a macro for a single command, and then assign the macro a keycombo).