Hints and Tricks (ne’s manual)

## 6 Hints and Tricks

Use `f1` or `Escape`-`Escape`, not `Escape`.

  Due to the limitations of the techniques used when communicating with a terminal, it is not possible to “decide” that the user pressed the `Escape` key for about a second after the actual key press (see EscapeTime). This means that you will experience annoying delays when using menus. If you have no `f1` key, use `Escape`-`Escape`, or redefine a keystroke assigning the command `Escape`, and you will be able to use that keystroke instead of `Escape`. Unfortunately, some GUI-based terminals (most notably, `gnome-terminal`) use `f1` for their own purposes; in that case, you can assign the `Escape` command to another key (see Configuration).

Check for the presence of a `Meta` key.

  If your system has a standard `Meta` or `Alt` key, there is a good chance that you have several other shortcuts. If the built-in `Meta` bindings do not work, you must discover which is the effect of the `Meta` in your terminal emulator. Indeed, it is possible in theory to configure about 150 shortcuts. See Configuration. In any case, prefixing a key with `Escape` has the same effect as holding down `Meta`, so with the standard key bindings you can, for instance, advance by word with ``Escape`` followed by `F`.

When editing very large files, please use the `--no-syntax` option.

  Even if `ne` will switch transparently to memory-mapped disk files, syntax highlighting requires a great deal of additional memory.

Mac users should turn on “Delete sends CTRL-H” in the `Terminal` settings.

  If you are a Mac user, you need to check the “Delete sends CTRL-H” option in the ‘`Advanced`’ tab of the `Terminal` application settings.

`ne` does tilda expansion.

  When you have to specify a file name, you can always start with `~/` in order to specify your home directory, or `~user/` to specify the home directory of another user.

It is easy to correct bad colors.

  Sometimes, due to different opinions about the best default foreground and background colors, some of the color choices in a syntax file might be unreadable (for instance, ‘`dim white`’ on a terminal with a white background). Just copy the guilty syntax specification file to the `~/.ne/syntax` directory, and change the color names at the start of the file.

Use the ‘`tabs`’ syntax to distinguish TABs from SPACEs.

  When you’re struggling to clean up a mix of TABs and SPACEs, temporarily switching to the ‘`tabs`’ syntax may help. The command `Syntax tabs` makes TAB characters show up in a different background color from SPACEs. Once you’ve gotten your white space issues straightened out, you can switch back to the syntax appropriate for your current file type.

`ne` does interactive filename completion.

  When you have to specify a file name as last element of a long input, you can invoke the completer using `Tab`. If you hit it twice in a row, you will enter the file requester, where you can navigate and escape back to the command line, either with `f1`, which will let you edit again your previous input, or with `Tab`, which will copy your current selection over your previous file name. In other words, you can freely alternate completion, editing and browsing.

Disable the status bar for slow connections.

  `ne` tries to emit as few characters as possible when updating the screen. However, for each key you type it is likely that the status bar has to be updated. If your connection is very slow, you can disable the status bar to get a quicker response (see StatusBar).

The `Escape` delay when activating menus can be avoided.

  If you press after `Escape` any key that does not produce the second character of an escape sequence, `ne` will immediately recognize the `Escape` key code as such. Since non-alphabetical keys have no effect while browsing through the menus, if you’re forced to use `Escape` as menu activator you can press, for instance, ‘`,`’ just after it to speed up the menu activation (note that ‘`:`’ would not work, because it would activate the command line). Alternatively, you can just type `Escape` twice in a row.

Use turbo mode for lengthy operations.

  Turbo mode (see Turbo) allows performing very complex operations without updating the screen until the operations are complete. This can be a major plus if you are editing very long files, or if your terminal is slow. If the default value (0, which means twice the number of visible rows) does not give you the best results, experiment other values.

Regular expressions are powerful, and slow.

  Regular expressions must be studied very carefully. If you spend a lot of time doing editing, it is definitely reasonable to study even their most esoteric features. Very complex editing actions can be performed by a single find/replace using the `\n` convention. But remember always that regular expressions are much slower than a normal search: in particular, if you use them on a UTF-8 text, `ne` has to transform them into an equivalent (but more complex) expression that cannot match partially a UTF-8 sequence, and this expansion makes the search even slower.

Use the correct movement commands in a macro.

  Many boring, repetitive editing actions can be performed in a breeze by recording them the first time. Remember, however, that while recording a complex macro you should always use a cursor movement that will apply in a different context. For instance, if you are copying a word, you cannot move with cursor keys, because that word at another application of the macro could be of a different length. Rather, use the next/previous word keys and the `MoveEOW` command, which guarantee a correct behaviour in all situations.

Some preferences can be preserved even with automatic preferences.

  When you save an autoprefs file, the file simply contains a macro that, when executed, produces the current configuration. However, you could want, for instance, to never change the insert/overwrite state. In this case, just edit the autoprefs files with `ne` and delete the line containing the command setting the insert flag. When the autoprefs are loaded later, the insert flag will be left untouched. This trick is particularly useful with the `StatusBar` and `FastGUI` commands.

If some keystrokes do not work, check for system-specific features.

  Sometimes it can happen that a keystroke does not work—for instance, ``Control`-O` does not open a file. This usually is due to the kernel tracking that key for its purposes. For instance, along a `telnet` connection with xon/xoff flow control, ``Control`-S` and ``Control`-Q` would block and release the output instead of saving and quitting.

  In these cases, if you do not need the system feature you should check how to disable it: for instance, some BSD-like systems feature a delayed suspend signal that is not in the POSIX standard, and thus cannot be disabled by `ne`. On HP-UX, the command `stty dsusp ^-` would disable the signal, and would let the control sequence previously assigned to it to run up to `ne`.