How do I get the file to wrap the line at 78 characters?
-
I need my UTF-8 files to not exceed 78 characters . How do I do that?
Thanks. -
I guess it can’t be done.
-
Hi Carl,
it can. Steps:
- Backup your file/data!
- Install plugin TextFX Characters. It will add menu item TextFX.
- Write down number representing length you would like to wrap text to. So in you case:
78
- Select and copy this number to clipboard.
- Select text you’d like to wrap.
- Menu: TextFX -> TextFX Edit -> ReWrap Text to (Clipboard or 72) width
- Done.
If you have more specific need like specific dealing with spaces or something custom, try to explain in detail. Many things can be done even with regular expression replace.
Best regards,
Tomas. -
Also, you can use the Settings->Preferences->Editing dialog to have a vertical line displayed on screen to use as a guide. It will not automatically wrap the lines, but it will help you to wrap them.
-
Hello Carl and All,
Don’t be sad ! In addition to the suggestions of Tomas and Jim, there are TWO other means to get the job done. Indeed !
-
With a Search/replacement, using regular expressions ( I’ll explain two kinds of wrapping ).
-
With the N++ native split feature, by the menu option Edit - Line Operations - Split Lines.
Let’s take an example, for better understanding. We’ll adopt some preliminary hypotheses, below :
-
Text is supposed to be “normal”. I mean, preferably, not language source code, lists in columns, poems or any specific text like these ones !
-
The blank character, used in text, is the classical SPACE character (
\x20
). To be sure that this second hypothesis is verified, use the intelligent (Thanks to Loreia2 ! ) replacement of Tabulation characters by spaces ( Menu option Edit - Blank Operations - TAB to Space ), which keeps the original location of any NON blank character ! -
If your text is pure text, without any specific frame, you may perform this useful S/R, in Regular expression mode ( updated 07/14/16 ) :
SEARCH =^\h+|\h+$|(\h+)
and REPLACE =(?1\x20)
, which :-
Deletes any leading or trailing horizontal blank character ( either a Space, a Tabulation or a No-Break space )
-
Normalizes any, other, range of consecutive horizontal blank characters to an unique SPACE character (
\x20
)
-
-
Your current text, in Notepad++, is displayed WITHOUT wrapping. So, the menu option View - Word wrap must be UNCHECKED.
-
A vertical edge line, located between columns 40 and 41, is defined, in N++. To do so, select the menu option Settings - Preferences… - Editing. Then, in the middle of this dialog, check the Show vertical edge square box, choose the Line mode displaying, type the number 40 as columns number, and valid with the Enter key and a click on the Close button.
OK. Now, let’s suppose that we want to split text, after 40 characters. Here is, below, the ORIGINAL example text that will be used. It begins by 5 test lines, from 38 to 42 characters long, followed by the section #7 of the license.txt file !
12345678901234567890123456789012345678 123456789012345678901234567890123456789 1234567890123456789012345678901234567890 12345678901234567890123456789012345678901 123456789012345678901234567890123456789012 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
If you want a STRICT splitting way, use, in regular expression search mode, the S/R, below :
SEARCH =
.{40}(?!\R)
and REPLACE =$0\r\n
=>Single words, exceeding 40 characters long, are split and paragraphs are wrapped, after, exactly, 40 characters !
12345678901234567890123456789012345678 123456789012345678901234567890123456789 1234567890123456789012345678901234567890 1234567890123456789012345678901234567890 1 1234567890123456789012345678901234567890 12 7. If, as a consequence of a court judgm ent or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreemen t or otherwise) that contradict the cond itions of this License, they do not excu se you from the conditions of this Licen se. If you cannot distribute so as to sa tisfy simultaneously your obligations un der this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. F or example, if a patent license would no t permit royalty-free redistribution of the Program by all those who receive cop ies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Progr am. If any portion of this section is held i nvalid or unenforceable under any partic ular circumstance, the balance of the se ction is intended to apply and the secti on as a whole is intended to apply in ot her circumstances. It is not the purpose of this section to induce you to infringe any patents or o ther property right claims or to contest validity of any such claims; this secti on has the sole purpose of protecting th e integrity of the free software distrib ution system, which is implemented by pu blic license practices. Many people have made generous contributions to the wide range of software distributed through t hat system in reliance on consistent app lication of that system; it is up to the author/donor to decide if he or she is willing to distribute software through a ny other system and a licensee cannot im pose that choice. This section is intended to make thoroug hly clear what is believed to be a conse quence of the rest of this License.
Now, you may prefer a “light” wrapping, that DOES NOT split words. So the splitting process will occur BETWEEN words ONLY !
In that case, use, in regular expression search mode, the S/R, below :
SEARCH =
(.{1,40})(\h+\R?|\R)
and REPLACE =\1\r\n
=> This time, single words, exceeding 40 characters long are NOT split and paragraphs of text are wrapped, between words. However, all resulting lines of text, after the five test lines, still, have, at the most, 40 characters.
12345678901234567890123456789012345678 123456789012345678901234567890123456789 1234567890123456789012345678901234567890 12345678901234567890123456789012345678901 123456789012345678901234567890123456789012 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
Finally, we may, as well, use the split native feature of N++. In that case, use the menu option Edit - Line Operations - Split Lines, or with the CTRL + I shortcut. By default, ALL the current text is being split, but you can restrict the splitting process to a previous selection !
However, to get a similar split text as above, you’d better increase by the number 2, the columns number, in the Preferences dialog. So, change 40 by 42, as columns number, in vertical Edge Settings.
=> In the resulting text, below, we notice that words, exceeding 41 characters long, are split and that text is wrapped, between words as above. But, unlike above, the different lines of a paragraph, except for the last one, ends, all, with a SPACE character !
12345678901234567890123456789012345678 123456789012345678901234567890123456789 1234567890123456789012345678901234567890 12345678901234567890123456789012345678901 12345678901234567890123456789012345678901 2 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
To end with that topic :
-
Of course, Carl, any number, instead of the number 40, can be used, and, especially, 78.
-
The text, obtained by the light wrapping method, either with the regex S/R or the N++ Split feature, give the SAME resulting text if you want to get, in a second time, an UNIQUE line, with the N++ Join feature ( menu option Edit - Line Operations - Join Lines or CTRL + J shortcut ).
Best Regards,
guy038
P.S. :
If we consider the original short text, below and the need to wrap text after 40 characters :
This is a test text, about the different wrapping methods. This text is quite short. It'll point out the slight differences between the splitting process !
-
With the S/R, SEARCH =
(.{1,40})(\h+\R?|\R)
and REPLACE =\1\r\n
, we get the wrapped text, below :This is a test text, about the different
wrapping methods.
This text is quite short.
It’ll point out the slight differences
between the splitting process !
We notice that lines, of exactly 40 characters long,( like the first one ), are NOT split and that the splitting process stops after any END of Line character(s).
-
With the N++ Split feature ( Edit - Line Operations - Split Lines ) and a vertical edge line, located after 42 columns, we get the wrapped text, below :
This is a test text, about the
different wrapping methods.
This text is quite short.
It’ll point out the slight differences
between the splitting process !
We notice that, when a line is exactly 40 characters long ( as the first line ), the last word is moved downwards, at beginning of the next line, due to the necessity to end each line by a space separator. But, as above, the splitting process stops after any END of Line character(s).
-
With the Split option of the TextFX plugin ( TextFX - TextFX Edit - ReWrap Text to (Clipboard or 72) width ), we get the wrapped text below :
This is a test text, about the different
wrapping methods. This text is quite
short. It’ll point out the slight
differences between the splitting
process !
This time, we notice that, like the S/R, lines of exactly 40 characters long, are NOT split, and, like the N++ split feature, each line ends the space separator. However, unlike above, the splitting process NEVER stops and goes on, over the consecutive lines of text !
-