# io.github.libtmux.TypedText.TypedText.withoutEcho

- **Module:** io.github.libtmux.TypedText.TypedText
- **Package:** io.github.libtmux:libtmux
- **Language:** Java
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-java/blob/842228310449e879ebcaa3f910597757c9dbffd6/libtmux/src/main/java/io/github/libtmux/TypedText.java#L53
- **Page:** https://libtmux.org/en/java/latest/reference/io-github-libtmux-typedtext-typedtext-withoutecho/

```
io.github.libtmux.TypedText.TypedText.withoutEcho(lines: List<String>) -> List<String>
```

The lines with each recorded echo taken out, wherever it stands as an echo does.

An occurrence is taken out only where it is not part of a longer word on either side. That is
what keeps the answer when the answer merely contains the question — {@code id} comes off
{@code $ id} and stays inside {@code uid=1000} — while still taking out every copy of an echo a
shell drew more than once, and one a shell drew something straight after. A row the echo shared
with real output keeps that output.

What no rule can do is tell an echo from output that repeats the whole typed line as a line
of its own. Wait for something the command prints rather than something it says.

The lines are scanned as one string, so an echo the terminal broke across rows is still
found. Pass lines with wrapping already rejoined when the text being watched for can itself be
broken across rows. A shell redraw or truncated capture that retains only part of an echo
cannot be recognized reliably.
