Text Layout Configuration
In RegexMagic, a “text layout” is a combination of settings that control how text is displayed and how the text cursor navigates through that text. The settings include the font, text direction, text cursor behavior, text cursor appearance, which characters are word characters, and how the text should be spaced.
On the Editors tab in the Preferences, you can select up to four different text layouts that are used for various parts of RegexMagic. The Regex text layout is used for edit boxes for regular expressions and replacement texts. The Convert text layout is used for the warning and error messages on the Convert panel. The font from the Convert text layout is also used for the regex tree on the Create panel. The editors on the Test, Debug, Use, and GREP panels all use the same text layout. You’ll likely want to select a monospaced text layout for this one, so that columns line up correctly. The Forum text layout is used to edit messages on the built-in user forum.
You can select predefined text layouts from the drop-down lists. Or, you can click the Configure Text Layouts button to show the Text Layout Configuration window to customize the text layouts.

Select The Text Layout Configuration That You Want to Use
The Text Layout Configuration screen shows the details of the text layout configuration that you select in the list in the top left corner. Any changes you make on the screen are automatically applied to the selected layout and persist as you choose different layouts in the list. The changes become permanent when you click OK.
Click the New and Delete buttons to add or remove layouts. You must have at least one text layout configuration. If you have more than one, you can use the Up and Down buttons to change their order. The order does not affect anything other than the order in which the text layouts configurations appear in selection lists.
RegexMagic comes with a number of preconfigured text layouts. If you find the options on this screen bewildering then simply choose the preconfigured layout that matches your needs, and ignore all the other settings. You can fully edit all the predefined text layouts to adjust them to your needs. You can delete any preconfigured text layouts that you don’t need. Some text layouts may not be available if the fonts they need were not installed on your computer when you first ran RegexMagic.
- Proportionally spaced left-to-right: Normal settings with best performance for editing text in alphabetic scripts (European languages and alphabets derived from European languages) and ideographic scripts (Chinese, Japanese, Korean) that are written strictly from left to right. (Sorry, no vertical text.) The fonts are proportionally spaced which make long-form text easier to read. The base fonts are the fonts that Windows itself uses for its user interface.
- Monospaced left-to-right: As above, but the fonts are all monospaced fonts. The base fonts are fonts that are specifically optimized for editing source code. The layout does respect individual character width. The text may not be perfectly monospaced if multiple fonts need to be used to display all the characters or if a font has different widths for its plain and bold variants and your color palette makes some text bold.
- Strictly monospaced left-to-right: As above, but forces all text on a monospaced grid, so everything is always perfectly monospaced. If bold text is wider then bold characters will be squeezed together a bit. If a fallback font has a slightly different width then its characters will be squeezed or have small gaps between them. If you add a proportionally spaced font to the list then that too will be forcibly monospaced.
- Monospaced left-to-right with ASCII ligatures: Like “monospaced left-to-right”, but the base fonts are monospaced but the width of individual characters is respected. The difference is that the base fonts are fonts that form ASCII ligatures for symbols that are often combined to form a single operator in programming languages. For example, the two characters != will likely appear as a single symbol ≠ (the actual ligatures depend on the font). But the text still contains the characters ! and =. The ligature is automatically broken if you do anything that affects only one of the characters that formed it. For example, highlighting all matches of ! on the test panel will reveal the original characters != so that ! can be highlighted separately. If you save the file then it will contain the original characters !=. Other applications will only show the ligature if they use the same font and are capable of forming ligatures.
- Strictly monospaced left-to-right with ASCII ligatures: As above, but all the text is forced to be monospaced.
- Simplified Chinese: Similar to “proportionally spaced left-to-right”. The list of fonts prioritizes the fonts needed for displaying simplified Chinese. Since these fonts also cover the English alphabet and many other European alphabets, this makes English text fit better with Chinese text.
- Traditional Chinese: As above, but prioritizing fonts needed for displaying traditional Chinese.
- Japanese: As above, but prioritizing fonts needed for displaying Japanese.
- Korean: As above, but prioritizing fonts needed for displaying Korean.
- Simplified Chinese with full-width ASCII: Similar to the “simplified Chinese” text layout, but forces the text to be strictly monospaced, with all characters having the same width as an ideograph. ASCII characters (and Japanese Kana too) are displayed using their full-width equivalents. Non-ASCII non-ideographic characters get extra space between them. Use this text layout to neatly display text that is arranged in columns and assumes that English letters have the same width as ideographs, instead of half their width.
- Traditional Chinese with full-width ASCII: As above, but prioritizing fonts needed for displaying traditional Chinese.
- Japanese with full-width ASCII and Kana: As above, but prioritizing fonts needed for displaying traditional Japanese. Kana are also displayed using their full-width equivalents.
- Korean with full-width ASCII: As above, but prioritizing fonts needed for displaying traditional Korean.
- South Asian complex script: Complex script text layout for scripts that are written predominantly from left to right. Fully supports all syllabic scripts where vowels and marks are written around consonants. Also supports bidirectional editing when mixing in text in right-to-left scripts. The font list prioritizes fonts for scripts used on the Indian subcontinent. But it includes all fonts needed to support all scripts supported by your Windows installation.
- South East Asian complex script: As above, but prioritizing fonts used for Thai, Lao, and Myanmar scripts. For South East Asian languages written using the Latin alphabet, including Vietnamese, you could use one of the strict left-to-right text layouts listed above instead.
- Complex script left-to-right: As above, but prioritizes the fonts that Windows itself uses for its user interface. Use this text layout for text that is written mainly in English or another left-to-right language but that contains words or sentences written in syllabic scripts or right-to-left scripts.
- Complex script right-to-left: Complex script text layout for scripts that are written predominantly from right to left, such as Arabic and Hebrew. Text is aligned to the right hand margin. The vertical scroll bar is positioned at the left hand side. Supports bidirectional editing when mixing in left-to-right scripts.
- Monospaced complex left-to-right: Complex script text layout for text that is written mainly in English or another left-to-right language but that contains words or sentences written in syllabic scripts or right-to-left scripts. Fonts for alphabetic and ideographic scripts are monospaced. Fonts for syllabic scripts are not. Respects the width of individual characters, ligatures, and syllables. So text will not be perfectly monospaced if it mixes scripts or if the bold and plain variants of a font have different widths.
- Monospaced complex right-to-left: As above, but for text that is written mainly in a right-to-left language such as Arabic or Hebrew. Text is aligned to the right hand margin. The vertical scroll bar is positioned at the left hand side.
- Monospaced complex left-to-right with ASCII ligatures: Similar to “monospaced complex left-to-right”, but with a base font that forms ligatures for ASCII characters that are often combined to form a single operator in source code.
- Monospaced complex right-to-left with ASCII ligatures: As above, but with the text aligned to the right hand margin and the vertical scroll bar at the left.
- Unifont: GNU Unifont is a font that attempts to provide a glyph for every Unicode code point. It can be useful as a fallback font of last resort or for figuring out which script you’re dealing with before choosing a more appropriate font. If you have this font installed when you first run RegexMagic then it adds the “Unifont” text layout configuration which uses only this font, including the “JP”, “Upper”, and “CSUR” variants if you have them. Supports complex script and bidirectional text editing. But because Unifont is bitmapped and monospaced, syllabic scripts may appear oddly spaced. Use this text layout with files that contain text that none of the other text layouts will display. But for best results you should then obtain a font that is designed for the missing script and add that to one of the other text layouts.
You can rename a text layout, including any of the predefined text layouts, by editing the text in the box labeled “name of this text layout configuration”.
Text Layout and Direction
This setting has a significant impact on how the text layout arranges text. Consider the options carefully.
- Left-to-right only: Text is always written from left to right. Complex scripts and right-to-left scripts are not supported. Respects the widths of individual characters. Even with monospaced fonts, text may not be fully monospaced if the bold variant is wider than the plain variant (and your color palette mixes bold with plain text) or if fallback fonts are needed that are spaced differently. Choose this for best performance for editing text in alphabetic scripts (European languages and alphabets derived from European languages) and ideographic scripts (Chinese, Japanese, Korean) that is written from left to right without exception.
- Monospaced left-to-right only: Text is always written from left to right and is forced to be monospaced. Complex scripts and right-to-left scripts are not supported. Each character is given the same horizontal width even if the font specifies different widths for different characters. This guarantees columns to be lined up perfectly. To keep the text readable, you should choose monospaced fonts.
- Complex script, predominantly left-to-right: Text is written from left to right and can be mixed with text written from right to left. Choose this for syllabic scripts such as the Indic scripts, or for text in any language that mixes in the occasional word or phrase in a right-to-left or syllabic script.
- Complex script, predominantly right-to-left: Text is written from right to left and can be mixed with text written from left to right. Choose this for writing text in scripts written from right to left such as Hebrew or Arabic. Text is aligned to the right hand margin. The vertical scroll bar is positioned at the left hand side.
You can toggle “ASCII characters with full ideographic width” in combination with any of the four preceding options. With most fonts, ASCII characters (English letters, digits, and punctuation) are about half the width of ideographs. This option substitutes full-width characters for the ASCII characters so they are the same width as ideographs. Japanese Kana are also displayed as full-width characters. The substitution is only done for display purposes. The file you save retains the ASCII characters and Kana that you entered. If you turn this on in combination with “monospaced left-to-right only” then all characters are given the same width as ideographs. Columns that mix English letters and digits with ideographs will line up perfectly. With the other text layouts, all characters other than ASCII and Kana are spaced according to their original widths.
Fonts
While in many applications you can choose only a single font to display your text, in RegexMagic you can select a list of fonts. This is necessary when working with text written in multiple scripts. There are no fonts that can perfectly display all scripts. Even if another application appears to be able to display all text using a single font, most likely that application is allowing Windows to automatically substitute different fonts for text that your chosen font cannot display. But this does not always work, and gives you no control over the fonts that are substituted.
RegexMagic does not allow Windows to automatically substitute different fonts. If your text contains characters that cannot be displayed by any of the fonts in your text layout configuration, then RegexMagic displays a rectangle with an X in it to indicate it cannot display the character. This is your signal that you need to add fonts to your text layout configuration, or select a different configuration. Click the Add Font button to do so. The Choose a Font dialog box will help you to select a font that supports the missing characters. When you OK that dialog, the font you chose is added to the list below the font that you selected before you clicked the Add Font button.
The order of the fonts is important. Put your main font at the top. The fonts below are fallback fonts. They are only used for text that the main font cannot display. When the text layout and direction are set to one of the two “left-to-right only” options, RegexMagic picks fonts character by character. It displays each character with the highest font in the list that supports the character. When using one of the two “complex script” options, the text is broken into runs of characters that form a unit (typically a word) in the same script. RegexMagic then uses the highest font in the list that can display the entire run for each run. Changing the order of fonts will change the appearance of the text if you swap fonts that support the same characters. You may still want both fonts in your list as both may support some characters that the other does not.
Normally, plain text files should not contain control characters other than tabs and line breaks. RegexMagic has separate settings for visualizing tabs and line breaks. Most fonts are unable to display control characters. Therefore RegexMagic provides several options for visualizing control characters. The first 3 use ASCII characters from the first font in the font list. The last 2 require a font that supports the visualization characters.
- Two stair-stepped letters: Similar to how RegexMagic visualizes specific line break styles, such as BS for backspace.
- Control+letter: Indicates ASCII control character with the Ctrl+letter combination that they are traditionally entered with on character terminals, such as ^H for backspace. Indicates ISO-8859 control characters as Esc+letter.
- Stair-stepped hexadecimal numbers: Hexadecimal index of the control character in the ASCII or ISO-8859 character tables, such as 08 for backspace.
- IBM PC glyphs: The original IBM PC displayed various graphical symbols when an application wrote an ASCII control character to the screen. RegexMagic can display these symbols if your list of fonts includes a font that supports them. The backspace control character then appears as an inverse bullet ◘, for example. ISO-8859 control characters are visualized with two stair-stepped letters. The IBM PC predates ISO-8859.
- Unicode control pictures: The Unicode standard has code points specific to visualizing the ASCII control characters. Few fonts support these. But if a font in your list does then RegexMagic can display these symbols. Those that do typically render them as 2 or 3 stair-stepped letters, such as ␈ for backspace. As you can see, these letters can be tiny with some fonts. Unicode does not have such code points for the ISO-8859 control characters. So RegexMagic uses its own stair-stepped letter visualization for those.
Selecting one of the last two options enables the Font button next to the drop-down list. When you click this button, RegexMagic first goes through the list of fonts to see if it already contains a font that supports the IBM PC glyphs or the Unicode control pictures (according to your choice). If it does then RegexMagic selects this font in the list before showing the dialog box for choosing a font to visualize control characters. That font is then the default font in this dialog box. Otherwise Segoe UI Symbol is the default. This dialog box only shows fonts that support either the IBM PC glyphs or the Unicode control pictures. You can change the option in the dialog box. It shows a hex editor control with all the ASCII and ISO-8859 control characters. The right hand side lets you preview the visualization. If you select a font that is not already in your list and click OK then RegexMagic adds it to the list of fonts.
Line and Character Spacing
By default all the spacing options are set to zero. This tells RegexMagic to use the default spacing for the font you have selected.
If you find that lines are spaced apart too widely, specify a negative value for “increase (or decrease) the line height”. Also specify to “add 0 pixels of extra space between lines”.
If you find that lines are spaced too closely together, specify a positive value for “increase (or decrease) the line height” and/or “add ... pixels of extra space between lines”. The difference between the two is that when you select a line of text, increasing the line height increases the height of the selection highlighting, while adding extra space between lines does not. If you select multiple lines of text, extra space between lines shows up as gaps between the selected lines. Adding extra space between lines may make it easier to distinguish between lines.
The “increase (or decrease) the character width by ... pixels” setting is only used when you select “monospaced left-to-right only” in the “text layout and direction” group. You can specify a positive value to increase the character or column width, or a negative value to decrease it. This can be useful if your chosen font is not perfectly monospaced and because of that characters appear spaced too widely or too closely.
Text Cursor Movement
- Monodirectional: The left arrow key on the keyboard always moves the cursor to the left on the screen and the right arrow key always moves the cursor to the right on the screen, regardless of the predominant or actual text direction.
- Bidirectional: This option is only available if you have chosen one of the complex script options in the “text layout and direction” list. The direction that the left and right arrow keys move the cursor into depends on the predominant text direction selected in the “text layout and direction” list and on the actual text direction of the word that the cursor is pointing to when you press the left or right arrow key on the keyboard.
- Predominantly left-to-right: The left key moves to the preceding character in logical order, and the right key moves to the following character in logical order.
- Actual left-to-right: The left key moves left, and the right key moves right.
- Actual right-to-left: The actual direction is reversed from the predominant direction. The left key moves right, and the right key moves left.
- Predominantly right-to-left: The left key moves to the following character in logical order, and the right key moves to the preceding character in logical order.
- Actual left-to-right: The actual direction is reversed from the predominant direction. The left key moves right, and the right key moves left.
- Actual right-to-left: The left key moves left, and the right key moves right.
Characters to Treat as Word Characters
Double-clicking selects a word. Ctrl+Allow Left jumps to the start of the current word or the previous word. Ctrl+Arrow Right jumps to the start of the next word. Letters and digits are always considered to be word characters. Whitespace characters are always considered to be non-word characters. But for punctuation characters and symbols, you have a choice. When working with source code, you may want to select the kinds of characters that your programming language allows in identifiers.
If you tick the option “words determined by complex script analysis” and you also select the “bidirectional” text cursor movement option then Ctrl+Arrow Left and Ctrl+Arrow Right will allow you to place the cursor between two letters for languages such as Thai that don’t write spaces between words. If you are not using a bidirectional text cursor then this option has no effect. Then Ctrl+Arrow Left and Right skip over entire sentences when there are no spaces between words.
Selection of Words
- Select only the word: Pressing Ctrl+Shift+Right moves the cursor to the end of the word that the cursor is on. The selection stops at the end of the word. This is the default behavior for all Just Great Software applications. It makes it easy to select a specific word or string of words without any extraneous spaces or characters. To include the space after the last word, press Ctrl+Shift+Right once more, and then Ctrl+Shift+Left.
- Select the word plus everything to the next word: Pressing Ctrl+Shift+Right moves the cursor to the start of the word after the one that the cursor is on. The selection includes the word that the cursor was on and the non-word characters between that word and the next word that the cursor is moved to. This is how text editors usually behave on the Windows platform.
Text Cursor Appearance
Select a predefined cursor or click the Configure button to show the text cursor configuration screen. There you can configure the looks of the blinking text cursor (and even make it stop blinking).
A text layout uses two cursors. One cursor is used for insert mode, where typing in text pushes ahead the text after the cursor. The other cursor is used for overwrite mode, where tying in text replaces the characters after the cursor. Pressing the Insert key on the keyboard toggles between insert and overwrite mode.
Sample Text
The sample text at the bottom of the window demonstrates your chosen text layout configuration. Any settings you change are automatically applied to the preview. If you need to select a different text layout to correctly or better display some specific text then you can paste it into the sample box. If you do not edit the sample text then RegexMagic automatically adapts the sample text to the text layout configuration that you choose in the list, at least if it recognizes the name of the configuration as one of the built-in ones. It changes the order of the sample sentences to put the most relevant ones at the top. Scripts that your selected text layout isn’t intended for are omitted. If you select a left-to-right only text layout, for example, then the sample text omits right-to-left and syllabic scripts.
For alphabetic languages, the samples are sentences like “The quick brown fox jumps over the lazy dog.” that use every letter in the alphabet at least once. This allows you to check that every letter is displayed to your liking.