Is there a quick way to paste big text to the right?
-
@Claudia-Frank said:
strg+x
Hello Claudia.
Thank you for your time!
It did work,but the result wasn’t as i expected,the formatting of the text needs rework,so i guess NPPP isn’t good for what i want to achieve. Will try on a image editor.
Thank you again , i hope and wish to you the best.Singer
-
Hi Singer,
if there is a repeating pattern in how you want the text to be modified then
it might be that there are other possible solutions.
Can you show us an example what exactly you try to achieve?
But if you already found a solution with another program than
I’m fine too. ;-)All the best to you as well.
Claudia
-
Hi Hoakin, Claudia and All,
Hoakin, I think that we can use some regexes, in order to achieve what you would like to !
For instance, I suppose that, from the original list ( 2 x 4 lines ), below :
Sir William Robert Jo Louise-Elisabeth Shakespeare Pattinson Burt Vigée Le Brun
OR
from the original list ( 1 * 4 lines ), below :Sir William Shakespeare Robert Pattinson Jo Burt Louise-Élisabeth Vigée Le Brun
You would expect the same final list below :
Sir William Shakespeare Robert Pattinson Jo Burt Louise-Élisabeth Vigée Le Brun
No problem. Just the time to run 2/3 Searches/Replacements !!
Of course, I needed some test text and I was thinking of a small list of real names and forenames of celebrities, with some compound names and some compound forenames, too !
I, finally, chose the list of the 32 repute classical harpists, taken from the link below :
https://en.wikipedia.org/wiki/List_of_classical_harpists
Note that I don’t specially like or hate harp !!, Just hazard, while surfing on the Net :-)
So, insert, in a NEW tab, the 32 forenames, below,
without
any indentation :Nancy Jana Alice Pearl Elaine Osian Vincent Sidonie Marcel Alphonse Elizabeth Pierre Yolanda Johann Baptist Lucile Susann François Joseph Jean Henri Şirin Laura Edna Ann Anna-Maria Casper Henriette Marisa Victor Carlos Marcel Sylvia Aristid Nicanor
Some hypotheses :
-
The variable
N
will represent the total number of forenames / names, that is to say, the value 32, in our example -
The variable
M
will represent the number of characters of the greatest forename, that is to say the value 15 ( Forename François Joseph, in our example ) -
The different S/R, below, must have the Regular expression search mode checked and the . matches newline option unchecked, in the Replace dialog ( CTRL + R )
-
You must go back to the very beginning of the list ( with CTRL + Origin ), BEFORE each S/R
Perform the first S/R, below :
SEARCH
^[^|\r\n]+[^ |]\K($|\|)|^.{M}\K +
replacing theM
variable by the appropriate integer ( 15, in our example )REPLACE
(?1 |)
withM Spaces
, between the (?1 and |) strings ( 15 spaces, in our example ), that is to say :(?1 |)
Click,
TWICE
, on the Replace All button
Now, add,
AFTER
the present list, the 32 names, below,without
any indentation :Allen Bouskova Chalifoux Chertok Christy Ellis Fanelli Goossens Grandjany Hasselmans Hainen DePeters Jamet Kondonassis Krumpholtz Lawrence McDonald Naderman Naderman Pancaroğlu Peperara Phillips Hobson Pilot Ravnopolska-Dean Reardon Renié Robles Salvi Salzedo Tournier Woods Von Würtzler Zabaleta
Perform the second S/R, below:
SEARCH
(.+)(?=\R(.+\R){N-1}(.+))|.(?s).+
replacing theN-1
expression by the appropriate number ( 31, in our example )REPLACE
\1\3
Click,
ONCE
, on the Replace All buttonNote :
-
The dot, before the
(?s)
syntax, represents 1 char. NON EOL, to avoid that the second alternative selects ALL the remaining text, when the cursor is located :-
Between the PIPE character and an EOL character, after a previous match of the first alternative of the regex
-
In possible blank lines, preceding the list, BEFORE any S/R process
-
Finally, perform the third S/R, below :
SEARCH
^(.+?)( *)\|
REPLACE
\2\1\x20
Click,
ONCE
, on the Replace All buttonEt voilà !!! Nice, isn’t it ?
We get the final list , below :
Nancy Allen Jana Bouskova Alice Chalifoux Pearl Chertok Elaine Christy Osian Ellis Vincent Fanelli Sidonie Goossens Marcel Grandjany Alphonse Hasselmans Elizabeth Hainen DePeters Pierre Jamet Yolanda Kondonassis Johann Baptist Krumpholtz Lucile Lawrence Susann McDonald François Joseph Naderman Jean Henri Naderman Şirin Pancaroğlu Laura Peperara Edna Phillips Ann Hobson Pilot Anna-Maria Ravnopolska-Dean Casper Reardon Henriette Renié Marisa Robles Victor Salvi Carlos Salzedo Marcel Tournier Sylvia Woods Aristid Von Würtzler Nicanor Zabaleta
Note :
- In the Replacement part, you may change the single space (
\x20
), between forenames and names, by anything you would like to ! For instance,\2\1 -
( two spaces + one dash + two spaces )
Now, let’s suppose that we, already, got the list of the
32
names, with their forenames, as below :Nancy Allen Jana Bouskova Alice Chalifoux Pearl Chertok Elaine Christy Osian Ellis Vincent Fanelli Sidonie Goossens Marcel Grandjany Alphonse Hasselmans Elizabeth Hainen DePeters Pierre Jamet Yolanda Kondonassis Johann Baptist Krumpholtz Lucile Lawrence Susann McDonald François Joseph Naderman Jean Henri Naderman Şirin Pancaroğlu Laura Peperara Edna Phillips Ann Hobson Pilot Anna-Maria Ravnopolska-Dean Casper Reardon Henriette Renié Marisa Robles Victor Salvi Carlos Salzedo Marcel Tournier Sylvia Woods Aristid Von Würtzler Nicanor Zabaleta
First of all, we had to change aspace with the PIPE character
|
, to separate the forename part, on the left, from the name part, on the right. This action still needs human’s brain, NOT regexes, unfortunately :-(( So, our list becomes :Nancy|Allen Jana|Bouskova Alice|Chalifoux Pearl|Chertok Elaine|Christy Osian|Ellis Vincent|Fanelli Sidonie|Goossens Marcel|Grandjany Alphonse|Hasselmans Elizabeth|Hainen DePeters Pierre|Jamet Yolanda|Kondonassis Johann Baptist|Krumpholtz Lucile|Lawrence Susann|McDonald François Joseph|Naderman Jean Henri|Naderman Şirin|Pancaroğlu Laura|Peperara Edna|Phillips Ann|Hobson Pilot Anna-Maria|Ravnopolska-Dean Casper|Reardon Henriette|Renié Marisa|Robles Victor|Salvi Carlos|Salzedo Marcel|Tournier Sylvia|Woods Aristid|Von Würtzler Nicanor|Zabaleta
Now, the different steps are almost the same ones as above. As we’ll use the same value of
M
, these are :-
Recopy this modified list in a NEW tab
-
Perform the first S/R,
TWICE
:
SEARCH
^[^|\r\n]+[^ |]\K($|\|)|^.{15}\K +
REPLACE
(?1 |)
( 15 spaces, between the (?1 and |) strings- Perform the third S/R,
ONCE
:
SEARCH
^(.+?)( *)\|
REPLACE
\2\1\x20
Note : In this case, the second S/R, above, is NOT used
We, again, get the final list below :
Nancy Allen Jana Bouskova Alice Chalifoux Pearl Chertok Elaine Christy Osian Ellis Vincent Fanelli Sidonie Goossens Marcel Grandjany Alphonse Hasselmans Elizabeth Hainen DePeters Pierre Jamet Yolanda Kondonassis Johann Baptist Krumpholtz Lucile Lawrence Susann McDonald François Joseph Naderman Jean Henri Naderman Şirin Pancaroğlu Laura Peperara Edna Phillips Ann Hobson Pilot Anna-Maria Ravnopolska-Dean Casper Reardon Henriette Renié Marisa Robles Victor Salvi Carlos Salzedo Marcel Tournier Sylvia Woods Aristid Von Würtzler Nicanor Zabaleta
Best regards,
guy038
-
-
Hi guy038,
puuuhh, wow, excellent.
You know I love python script and I guess this script can do it almost the same, can’t it?i = 0 # LengthOfBiggestString list_of_names = [] def find_biggest_string(cont, l_num, tot_lines): global i if len(cont) > i: i = len(cont) list_of_names.append(cont) editor.forEachLine(find_biggest_string) editor.clearAll() for name in list_of_names: name_parts = name.split(' ') firstname = name_parts[0] lastname = ' '.join(name_parts[1:]) console.write('{0:>{1}} {2}'.format(firstname,i, lastname)) editor.appendText('{0:>{1}} {2}'.format(firstname,i, lastname))
Cheers
Claudia -
Hello, Claudia,
Yes, you’re absolutely right ! I should have a try of this powerful plugin, taking some time to fully study it, instead of jumping from one N++ version to another one, rather using basic features !
I also saw your detailed reply to pwnotepaduser, from :
https://notepad-plus-plus.org/community/topic/10882/feature-request-copy-line-with-number/6
Everyone can notice that very few lines, of that scripting tool, are enough to get a complete new feature, from inside N++ :-)
However, I, sometimes, find hard to get back to “real life”, while using N++. So, I’m just afraid it would be worse, using the Python Script plugin, which can help everyone to really customize its own Notepad++ ! Of course, I’m a bit joking… but not only !
BTW, I haven’t heard of you, on N++ forums, for quite a long time. So, it’s nice that you’re back again ! And, thanks for the active and valuable support you give to many N++ users :-))
Cheers,
guy038
-
Hi guy038,
thank you for your kind words. You’re right, I was a bit lazy in the past.
Mainly in the virtual world, real life was/is stressful enough ;-)It’s nice to see that you are still having that patience to answer in such
elaborated way. Astonishing. Is there anything you can’t do with RegEx? ;-)
Maybe cooking??Keep your good mood.
Cheers
Claudia -
Hi, Claudia,
No, no, you’re wrong about regexes ! Of course, cooking is possible with regexes : See, below, that wonderful cake, only made of special regex characters, except for the regular slash !!!
•-------------------------------------------------------------• | | | {+} | | \ ({^}) \ | | / / ) \ / / ) {^} | | ( \ | / .|. | / ({+}) | | \ | .|. | | .|. \ / | | .|. | | | | | | .|. | | | | | | | | | | | | | | | | | |+*****+| |+****+| | | | | | | |+***+| | | | | |+***+| | | | +*| | | | | | | |+***+ | | + | | | | | | | | + | | * | | H A P P Y | | * | | | * | | * | | | | +***+ R E G E X E S ! +***+ | | | |$ +********+ +********+ $| | | | $ $ +***********+ $ $ | | | | $ $ $ $ $ $ $ $ | | | | $ $ $ $ $ $ $ $ | | | + $ $ $ $ $ $ $ $ + | | +***+ $ $ +***+ | | +********+ $ $ +********+ | | +***********+ | | | •-------------------------------------------------------------•
And, as we’re near Christmas time, let’s have, now, the candle’s flames animated :
-
Copy / Paste that delicious cake in a new tab
-
Open the Replace dialog ( CTRL + H )
-
Set the Regular expression search mode
-
Check, preferably, the Wrap around option
-
Don’t care about the other options !
-
Fill up the Search and Replace zones :
SEARCH ( \ )|( / ) )|( | / )|({^})|( / )|( ( \ )|( \ | )|({+})
REPLACE (?1 / )(?2 ( \ )(?3 \ | )(?4{+})(?5 \ )(?6 / ) )(?7 | / )(?8{^})
-
Click on the Replace All button, repeatedly ( or press the ALT + A shortcut, for a quicker switch )
Et voilà ! Like kids, you’re quite filled with wonder, aren’t you ?
Of course ( as I’m certainly better in regexes than in drawing and painting ! ), I didn’t create this image. I just took the general frame, from a French site, about ASCII-Art, at the address below :
http://www.ascii-fr.com/-Anniversaire-.html
Best Regards,
guy038
-
-
LOL LOL LOL LOL
Brilliant, I really tried it and had a lot of fun with it.
I even felt the heat :-DSo next time I have guests I serve coffee,
put a laptop on the table and let them choose a slice :-DHmm, so I have to think about a pythonish way. ;-)
Cheers
Claudia -
Hi, Claudia,
Give a second try to my regex, because I slightly modified the cake and I needed to put the Search and Replace regexes like pure code, with black background, in order that consecutive space characters are NOT compacted in one space !
Otherwise, the regexes DON’T give the goods results !
Cheers,
guy038
-
Hi guy038,
beautiful. So I don’t play spider solitare anymore
but will watch burning cake :-DCheers
Claudia