In questions and answers, I would sometimes like to keep a whole string together, to avoid what's happening to the string [![:print:]] here:

bad hyphenation example

Is there a trick to avoid breaking a short string?

In an earlier revision of this question, I mentioned non-breaking spaces. This seemed to derail people's attention (hence the comments below). This question is about preventing word-breaking, not about how to do non-breaking spaces.

  • 2
    Side note - if you don’t feel like pressing Alt + Space then typing   works as well. Jan 4, 2020 at 7:40
  • @JonnyHenly Not within backticks for an in-line code string (or triple backticks for a block). It does work if you use it within a <code>...</code> HTML tag, which I never use as I write lots of small code snippets. Every once in a while, that might be useful though. Jan 4, 2020 at 7:50
  • 1
    I see your point. I’m afraid your best option is to use block formatting rather than inline. Though this should only pertain to exact syntax situations where the incorrect reading of inline hyphenation could lead to undesired behavior. Jan 4, 2020 at 8:00
  • @JonnyHenly Hm? Your comment was about non-breaking spaces, not about hyphenation, right? In-line code marked up with <code> is still hyphenated at awkward positions. My question is about how to prevent hyphenation of in-line text/code. If there was something that could be done with HTML attributes in the <code> tag, for example, that would be nice. Jan 4, 2020 at 8:07
  • 1
    As for Not within backticks for an in-line code string in the comment above: please don't add non-breaking spaces in code. It will confuse people a lot when copy/pasting that code.
    – Arjan
    Jan 4, 2020 at 8:08
  • @Arjan How would I then best show a string with some trailing spaces in a paragraph, as I did in this question? Note that this is almost never in code that anyone would copy. This is for text talking about code. Jan 4, 2020 at 8:11
  • The non-breaking space thing that I mentioned in passing seems to derail people's attention. This question is not about how to do non-breaking spaces. Jan 4, 2020 at 8:13
  • Use block formatting - either indent the code with four spaces, use triple ticks or go the html route with <pre><code>...</code></pre>. Jan 4, 2020 at 8:13
  • @JonnyHenly I don't think that would be appropriate for the example that I show in the question where I talk about a filename globbing pattern. Using a pre+code block for each [![:print:]] (or even one of them) would make the text confusing and unreadable. Jan 4, 2020 at 8:20
  • I agree with you, it’s better to keep those inline. But for situations in which spacing is part of the syntax (i.e. makefiles, sh builtins, ...) it’s better to block format that code. Basically inline code is going to be broken up or awkwardly placed on a new line if it cannot fit, you can try adding <br>s to make it work but it’s going to look weird on other people’s displays. Jan 4, 2020 at 8:30
  • @JonnyHenly I'm well aware how code block formatting works. This is not an issue. This is about span elements, i.e. strings in text in flowed paragraphs (see example in question). Jan 4, 2020 at 8:32

2 Answers 2


To prevent the word-break

In questions and answers, I would sometimes like to keep it together, to avoid this to the string [![:print:]] happening

Use a &#8205; between all characters, which is a Zero-width joiner

In questions and answers, I would sometimes like to keep it together, to avoid this to the string ‍[‍!‍[‍:‍print‍:‍]‍]‍ happening

Above in Markdown:

> In questions and answers, I would sometimes like to keep it together
> , to avoid this to the string 
> <code>&#8205;[&#8205;!&#8205;[&#8205;:&#8205;print&#8205;:&#8205;]&#8205;]&#8205;</code> happening

Far from convenient to create (or use later on (copy/paste)) but that was not stated as a requirement.

  • Urgh. Yeah, far from convenient, but possibly still useful under under some limited circumstances. Jan 4, 2020 at 10:51
  • Or use it as code on a separate linr, that also doesn't break. As per your markdown piece.
    – Luuklag
    Jan 4, 2020 at 12:45
  • 1
    I feel adding zero-width joiners will confuse people who copy the code. It might also affect search. (And aside, this is optimizing for some views, typically the regular desktop browser, but not for others such as the mobile view or any usage of the data dumps, which might flow the text differently.) Related, the auto-inserted magic in comments, that confused people too: Occasionally, the Unicode character sequence U+200C U+200B (ZWNJ ZWSP) is inserted into comments.
    – Arjan
    Jan 4, 2020 at 12:47
  • 1
    If I copy and paste your example with the zero-width joiner in it, that invisible character can stay as part of the pasted text, possibly resulting in some strange, bizarre, or hard to understand errors, depending on how that character is handled. Jan 4, 2020 at 16:32
  • 3
    @1201ProgramAlarm and we all love those errors, right?
    – rene
    Jan 4, 2020 at 17:13

Not sure if this qualifies as an answer, but I think you should not care too much about this, because you can't completely prevent these kind of things happening. Perfecting your posts is commendable, but in this case your energy might be better spent elsewhere, e.g. finding and writing an answer to another question.

For a real-life example, this very morning, I was Googling for how to check the log of launchctl. The first search result is a Server Fault answer and it's short enough that I don't need to navigate:

So I copy

sudo launchctl log level debug

and execute it, and then I copy

tail -f /var/log/system.log

and execute it. Or so I thought; since Google strips the formatting, that actually ended up being

tail -f /var/log/ system.log

thanks to the line break. The author of that question wisely chose a code block for their commands, but even that didn't help.

  • 1
    Above at least the whitespace was visible after pasting. Zero-width fillers, like suggested elsewhere, would add far more confusion.
    – Arjan
    Jan 4, 2020 at 14:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .