User guide / The screen

Interaction line

Development reference · View source

The interaction line teaches each command as you use it:

ResultEcho
No more specific resultThe typed keys and the command description: g l (Move to line end)
A useful resultThe result: Space e (opened /path/to/dir), :c (closed file)
Failedbinding (action · failed: message)
Unavailablebinding (action · unavailable: message)
Unbound keysNo binding: g z
  • Commands that wait for a character keep showing the actual keys typed, including configured bindings and counts, and say what to type next. m r asks for the existing pair; m r ( asks for its replacement. Find, replace, surround, register, and named-macro commands show this guidance until their last operand arrives. Esc cancels the pending input. Two-key jump labels also show the first label key while waiting for the second; completion, cancellation, and invalid input leave visible feedback.
  • An active prompt uses the line temporarily. Errors, warnings, service output, and other notifications never replace the prompt or the echo.
  • A failure carries the outcome’s own message, not only the fact that it failed.
  • A message longer than the space left, or spanning several lines, is cut to fit and ends with .... :not keeps the complete text. A prompt being typed is never cut, since its cursor position depends on the full text.
  • A mistyped sequence (No binding: g z) is also shown in the key hints, but is not kept as a notification: it says nothing worth reading later, and a burst of mistyping would otherwise be the largest and only unbounded source of unread notifications.

Pasting into prompts. Single-line prompts and filters reject a whole paste that contains control characters, including a trailing newline or tab.

  • The text, cursor, and selected result stay unchanged, and the prompt shows Control characters are not allowed; nothing was inserted until the next input.
  • This applies to the command line, search and rename prompts, Finder and list queries, session-directory queries, and typed Git confirmations.
  • Literal backslash sequences such as \n are ordinary prompt text.
  • Buffers and terminal sessions still accept multiline paste. Terminal paste actions, including macOS Cmd-v, keep line breaks even when the terminal sends them as carriage returns, and keep existing LF and CRLF separators.