Delete every line below a bookmarked line.
-
Hi, @peterjones and All,
Sorry, Peter,I should have read your post thoroughly, as you already provided a similar solution to mine : FIND
(#STNEW:_TEST-(?:1|3|5)\R)(.*\R)
and REPLACE =$1
BR
guy038
-
@guy038 Hello and goodmorning from Sweden, I reached out to Ai this morning to see if it could help you understand what I mean. And I got this answer: "Delete Only the Lines Below Bookmarked Lines
Step 1: Bookmark the Correct Lines
Ensure you’ve bookmarked only the lines directly above the lines you want to delete. Use Ctrl+F2 to toggle bookmarks on or off for the relevant lines.
Step 2: Verify Bookmarks
Go to Search → Bookmarks → Show All Bookmarks to confirm that only the correct lines are bookmarked.
Follow these steps precisely:Go to Macro → Start Recording.
Perform these actions in sequence:
Press Ctrl+F2 to jump to the next bookmark.
Press the Down Arrow key to move the cursor to the line below.
Press Ctrl+L to delete the line below.
Press Ctrl+F2 again to jump to the next bookmark.
Stop the recording via Macro → Stop Recording.
Save the macro via Macro → Save Current Recorded Macro.
Step 4: Run the Macro Until All Bookmarks Are Processed
Go to Macro → Run a Macro Multiple Times.
Select Run until the end of the file to ensure all lines below the bookmarked lines are deleted.
If This Still Doesn’t Work
If the macro doesn’t behave as expected, we could use a manual method involving regex. Bookmarks in Notepad++ can’t be directly accessed by regex, but they can act as visual markers while you use regex for other patterns.Deleting lines below bookmarked lines in Notepad++ cannot do by regex: Alternative alternate outlines flex recommendations use text off regular ACL–"
Sorry for all the mistakes I make. I accept all the tips and corrections you give me. So I do what I can to correct my posts so that they don’t become wrong again. Kind regards Thore
-
@PeterJones said in Delete every line below a bookmarked line.:
@Antheds-Kennel said in Delete every line below a bookmarked line.:
Hello again, I have uploaded a picture showing before and after with the code you gave first
You can just paste pictures into your reply, so they are embedded without people having to click a link to an external site.
And with some external sites, you can use the
![](...)
syntax to embed the external image itself, rather than linking to their advertisement-ridden landing page
Using the code![](https://i.ibb.co/zxwV87k/33.jpg)
will embed your external image:But since external sites can change their rules (thousands of imgur-hosted external images will no longer show in the forum, even though they used to work here, so much of our discussion history now has broken images because of the external site outside of our control), so it’s really best to just paste your image directly in your post.
Ok, i will do that next time, or should i correct that one i already have posted?
-
@PeterJones It’s true that I only want to delete the lines below the ones that are bookmarked. So technically I could blureed out the “#STNEW” lines since my original question was to delete all lines below the ones that are bookmarked. So I admit I was unclear.
-
Hi, @antheds-kennel, @datatraveller1, @dr-ramaanand, @peterjones and All,
Sorry, @antheds-kennel, But I still do not understand your goal ! You said :
I only want to delete the lines below the ones that are bookmarked.
Do you mean :
I only want to delete each SINGLE line which is below the bookmarked lines
or
I only want to delete all the lines which are below the bookmarked lines
In addition, in the description of your macro, you said, twice :
Press Ctrl+F2 to jump to the next bookmark.
This is not right ! This feature does not enable you to move to the next bookmark ! The
Ctrl + F2
feature TOGGLE the Bookmark status of the current line :-
If the current line is not bookmarked, a
Ctrl + F2
action will bookmark this line -
If the current line is bookmarked, a
Ctrl + F2
action will un-bookmark this line
To move to a bookmark, you can, either :
-
Hit the
F2
key, which moves to the next bookmark -
Hit the
Shift + F2
combination, which moves to the previous bookmark
BR
guy038
-
-
@guy038 said in Delete every line below a bookmarked line.:
I only want to delete all the lines which are below the bookmarked lines
That is what i want, Sorry for not being clear enough, english is not my first language, but i will do my best.
-
@guy038 Hello and happy new year, what I attached last time was a suggestion from ChatGPT. What I do is:
- Bookmark all the lines that I want to delete (after I delete the line below).
- Record a macro where I click F2->down arrow.
- CTRL+L to delete that line.
- Stop recording.
- Click Macro->Run A Macro Multiply Times->Run Until…(with the macro I just created).
- Now I’m supposed to go via Search->Bookmark->Remove Bookmarked Lines, but I can’t get that far because the macro deletes more than what I want to delete.
-
Hi, @antheds-kennel, @datatraveller1, @dr-ramaanand, @peterjones and All,
@antheds-kennel, you said :
I want to delete all the lines which are below the bookmarked lines
OK ! Then, if I consider this INPUT text, in a new tab :
Line 01 Line 02 Line 03 • Line 04 Line 05 Line 06 • Line 07 Line 08 Line 09 Line 10 Line 11 • Line 12 Line 13 Line 14 Line 15 Line 16 Line 17 Line 18 Line 19 Line 20 Line 21 Line 22
Where only the lines
4
,7
and12
are bookmarkedYou’re expecting this OUTPUT text, aren’t you ?
Line 01 Line 02 Line 03 • Line 04 • Line 07 • Line 12
If this behavior is the one you looking for :
-
Firstly, bookmark all the unmarked lines which lay before the first bookmarked line of current file ( so the lines
01
,02
and03
in our example ) -
Secondly, do a mouse right-click, within the bookmark margin, on the left, and run the
Remove Non-Bookmarked Lines
option
BR
guy038
-
-
@guy038 said :
…bookmark all the unmarked lines which lay before the first bookmarked line
This may be a lot of manual effort if there are many lines upon which to place a bookmark – think about clicking the margin or pressing F2 hundreds of times. :-(
Making a text selection of all of these lines and then choosing the Toggle Bookmark command does not do it; it sets a bookmark on the (single) line of the caret in the selection.
Here’s a way to automate placing bookmarks on multiple lines, acting on @guy038 's example text:
- put a character that does not appear in the document at the end of the last line upon which bookmarking of all individual lines is desired:
- run this marking operation:
- obtain this result:
- remove the extra character added earlier
- put a character that does not appear in the document at the end of the last line upon which bookmarking of all individual lines is desired:
-
-
Hello, @alan-kilborn and All,
BTW, I’m thinking : would it be a problem if :
-
When no standard selection, in current file, the commands
Toggle Bookmark
,Clear All Bookmarks
,Cut Bookmarked Lines
,Copy Bookmarked Lines
,Paste to (Replace) Boomarked lines
,Remove Bookmarked lines
,Remove Non-Bookmarked Lines
andInverse Bookmark
would act on the entire file -
When a standard selection would occur ( even partially ), these eight commands would act on that selection only
-
Could this new behavior be extended to multiple standard selections ?
-
More important : what about a
Ctrl + Z
/Ctrl + Y
action ?
Best Regards,
guy038
-
-
@guy038 said :
When no standard selection, in current file, the commands Toggle Bookmark, Clear All Bookmarks, Cut Bookmarked Lines, Copy Bookmarked Lines , Paste to (Replace) Boomarked lines, Remove Bookmarked lines, Remove Non-Bookmarked Lines and Inverse Bookmark would act on the entire file
With the exception of Toggle Bookmark, these commands already all work on the entire file.
When a standard selection would occur ( even partially ), these eight commands would act on that selection only
You should start with a “feature request” for this behavior.
Could this new behavior be extended to multiple standard selections ?
I would think that only a single stream-type selection should be supported. Anything more than that overcomplicates a feature request (and probably kills it).
what about a Ctrl + Z / Ctrl + Y action ?
Not applicable.
Undo/redo applies to textual changes only. -
You should start with a “feature request” for this behavior.
And HERE it is.
-
@Alan-Kilborn @guy038 and all: The regular expression method explained by @guy038 and @PeterJones would have been best but due to some fixed ideas, the OP is unwilling to use it. Happy New Year!
-
@dr-ramaanand said in Delete every line below a bookmarked line.:
the OP is unwilling to use it
Well, if it comes down to being able to obtain an end result that you need, and you refuse to use a technique that gets you there, I guess you may not get to your destination.
-
@guy038 said in Delete every line below a bookmarked line.:
Hi, @antheds-kennel, @datatraveller1, @dr-ramaanand, @peterjones and All,
Sorry, @antheds-kennel, But I still do not understand your goal ! You said :
I only want to delete the lines below the ones that are bookmarked.
Do you mean :
I only want to delete each SINGLE line which is below the bookmarked lines
or
I only want to delete all the lines which are below the bookmarked lines
In addition, in the description of your macro, you said, twice :
Press Ctrl+F2 to jump to the next bookmark.
This is not right ! This feature does not enable you to move to the next bookmark ! The
Ctrl + F2
feature TOGGLE the Bookmark status of the current line :-
If the current line is not bookmarked, a
Ctrl + F2
action will bookmark this line -
If the current line is bookmarked, a
Ctrl + F2
action will un-bookmark this line
To move to a bookmark, you can, either :
-
Hit the
F2
key, which moves to the next bookmark -
Hit the
Shift + F2
combination, which moves to the previous bookmark
BR
guy038
Hello and THANK YOU for your patience, what you are referring to is what ChatGPT suggested, I think I missed being clear that there is only ONE row under each bookmarked row that should be deleted. -
-
Hi again, I have an example here where you probably understand better what I mean. I have different albums that I have marked up with bookmarks and want to delete, but in the example I have not bookmarked any as I think you can randomly make your own to make it work. In the example there are six albums where for example I only want to save 3 (every other), then I think you first delete the line DIRECTLY BELOW and then delete the bookmarks.
#EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/The Album #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/ABBA #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Ring ring #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Voyage #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Super Trouper #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Waterloo
Kind regards Thore
-
The macro idea isn’t bad (I hate admitting that a generative AI got even partial credit).
Unfortunately for the AI’s reputation, in my initial experiments, it seems that recording the Search > Bookmark > Next Bookmark action (
F2
) doesn’t just record that menu entry; instead, it records an underlying SCI_GOTOLINE (2024
) command that I wasn’t expecting, as well. :<Action type="0" message="2024" wParam="2" lParam="0" sParam="" />
Because that line was recorded for me, then when the run-multiple-times tells it to run again, then it goes back to that same starting line, and thus goes to the same bookmark as before, and deletes the next line under it as well. As it loops, it will obviously then delete a lot more than you were hoping.
The AI didn’t know Notepad++ would record that extra GOTO, and thus “unintentionally” misinformed you. Since the generative AI only spout the most likely text based on what it was trained on from scraping the internet, the answers it gives are guaranteed to be the most likely based on its training set, but as can be seen from any experience on the internet, the most likely text is not likely to be the most accurate or correct text. (It is hard to call it truly unintentional, because the GPT providers all brag about how good their models are at providing good-sounding data, without the emphasis that they should provide that it’s only “most likely”, not “most accurate”. I think they should be held accountable for this misleading bragging, and the misinformation and potential damage that they thus cause.)
Really, as was suggested above, the easiest would be to bookmark the lines you want to delete, instead of bookmarking the lines above what you want to delete.
But if you insist, I have manually crafted a replacement macro for you to use. Close Notepad++, open again, edit
%AppData%\Notepad++\shortcuts.xml
, find your macro (by searching for its name), and replace its<Action...>
lines with the<Action...>
lines from my macro below:<Macro name="DelUnderBookmarks" Ctrl="yes" Alt="no" Shift="yes" Key="121"> <Action type="2" message="0" wParam="43006" lParam="0" sParam="Next Bookmark" /> <Action type="2" message="0" wParam="43005" lParam="0" sParam="Toggle Bookmark" /> <Action type="0" message="2300" wParam="0" lParam="0" sParam="Line Down" /> <Action type="0" message="2338" wParam="0" lParam="0" sParam="Line Delete" /> </Macro>
This will move to the next bookmark, from wherever you are, then disable that line’s bookmark, then moves down and deletes the line (the macro recorder for
Ctrl+L
actually CUT the line using SCI_LINECUT 2337 rather than DELETED the line using SCI_LINEDELETE 2338 (mapped toCtrl+Shift+L
for me), so it clobbered your clipboard; I switched to 2338 to do the SCI_LINEDELETE instead.) Since this alternate macro toggles off each bookmark as it’s found, it won’t accidentally go to the same location again and re-delete.When I run my shown macro from the start to the end of file, if I had bookmarked 3, 7, and 9, then it deleted what were 4, 8, and 10. If I leave out the Toggle Bookmark from the macro, it will delete all the lines from 4 onward, because the old bookmark locations can be re-visited.
If you need to keep the bookmarks on the original lines, even after the subsequent line was deleted, then it would take more effort to avoid that problem – and probably becomes something not solvable with macros alone. At which point, I would recommend installing PythonScript plugin, and then you could write a script which adds in the safety logic which a macro alone cannot provide.
-
@Antheds-Kennel If you tell us which lines you want to delete exactly, we can help you with a regular expression, if not, you are wasting our time
-
@PeterJones YES, the only thing now is that the last line is deleted. I don’t know if I understood you correctly, but this is what I changed in my Macro:
#EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/The Album #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Ring ring #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden"
But I want it to look like this:
#EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/The Album #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Ring ring #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" #EXTINF: id="ABBA" name="ALBUM" group-title="Sweden" D:/MP3/Sweden/ABBA/Waterloo
I changed my macro code from this:
<Macro name="DelUnderBookmarks" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2024" wParam="2" lParam="0" sParam="" /> <Action type="2" message="0" wParam="43006" lParam="0" sParam="" /> <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2337" wParam="0" lParam="0" sParam="" /> </Macro>
To this one where I copied your suggestion which does everything right up to the last bookmark, where it also removes what I want to save:
<Macro name="DelUnderBookmarks" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="2" message="0" wParam="43006" lParam="0" sParam="Next Bookmark" /> <Action type="2" message="0" wParam="43005" lParam="0" sParam="Toggle Bookmark" /> <Action type="0" message="2300" wParam="0" lParam="0" sParam="Line Down" /> <Action type="0" message="2338" wParam="0" lParam="0" sParam="Line Delete" /> </Macro>
So I think I’ve somehow made a mistake that also deletes the last bookmark row that we want to save, assuming it’s 3,7, and 9 we want to delete.
Din “Macro name” rad ser ut så här:<Macro name="DelUnderBookmarks" Ctrl="yes" Alt="no" Shift="yes" Key="121">
Och min ser ut så här:
<Macro name="DelUnderBookmarks" Ctrl="no" Alt="no" Shift="no" Key="0">
Kan det vara skillnaden?
So now it’s REALLY CLOSE to get it working, you’re a rock at this, you know, THANK YOU :)