Repository: nushell/nushell (language: rust)

Issue:
Nushell error messages should only display "backtrace" info message when it will change the output
### Related problem

#14945 is nice, but most Nushell CLI errors aren't going to have a bracktrace.  Having the 

```nushell
let string = oops-this-is-a-command-position
# => Error: nu::shell::external_command
# => 
# =>   × External command failed
# =>    ╭─[entry #7:1:14]
# =>  1 │ let string = oops-this-is-a-command-position
# =>    ·              ───────────────┬───────────────
# =>    ·                             ╰── Command `oops-this-is-a-command-position` not found
# =>    ╰────
# =>   help: `oops-this-is-a-command-position` is neither a Nushell built-in or a known external command
# => 
# => set the `NU_BACKTRACE=1` environment variable to display a backtrace.
```

Setting `NU_BACKTRACE` isn't going to change anything, except to get rid of the last two lines of the error above.

### Describe the solution you'd like

Either only display the `NU_BACKTRACE` info message if there is more than one error in the chain (if possible) or, can we just get rid of that message altogether and make it part of the documentation instead?  While useful, I don't know that it's going to be as critical as having a backtrace on a panic, and Nushell errors are *very* common compared to panics.

Side-note:  The message should reference `$env.NU_BACKTRACE = 1` rather than the POSIX-style.

### Describe alternatives you've considered

_No response_

### Additional context and details

_No response_


Discussion / hints:

Fix patch:
diff --git a/crates/nu-protocol/src/errors/cli_error.rs b/crates/nu-protocol/src/errors/cli_error.rs
index a53fec0600b88..7439d1df793b0 100644
--- a/crates/nu-protocol/src/errors/cli_error.rs
+++ b/crates/nu-protocol/src/errors/cli_error.rs
@@ -50,10 +50,6 @@ pub fn report_compile_error(working_set: &StateWorkingSet, error: &CompileError)
 
 fn report_error(working_set: &StateWorkingSet, error: &dyn miette::Diagnostic) {
     eprintln!("Error: {:?}", CliError(error, working_set));
-    let have_no_backtrace = working_set.get_env_var("NU_BACKTRACE").is_none();
-    if have_no_backtrace {
-        eprintln!("set the `NU_BACKTRACE=1` environment variable to display a backtrace.")
-    }
     // reset vt processing, aka ansi because illbehaved externals can break it
     #[cfg(windows)]
     {


Test patch:
diff --git a/crates/nu-protocol/tests/test_config.rs b/crates/nu-protocol/tests/test_config.rs
index 18e79635cfd78..49ad1cdec664f 100644
--- a/crates/nu-protocol/tests/test_config.rs
+++ b/crates/nu-protocol/tests/test_config.rs
@@ -60,7 +60,7 @@ fn fancy_default_errors() {
 
     assert_eq!(
         actual.err,
-        "Error:   \u{1b}[31m×\u{1b}[0m oh no!\n   ╭─[\u{1b}[36;1;4mline2:1:13\u{1b}[0m]\n \u{1b}[2m1\u{1b}[0m │ force_error \"My error\"\n   · \u{1b}[35;1m            ─────┬────\u{1b}[0m\n   ·                  \u{1b}[35;1m╰── \u{1b}[35;1mhere's the error\u{1b}[0m\u{1b}[0m\n   ╰────\n\nset the `NU_BACKTRACE=1` environment variable to display a backtrace.\n"
+        "Error:   \u{1b}[31m×\u{1b}[0m oh no!\n   ╭─[\u{1b}[36;1;4mline2:1:13\u{1b}[0m]\n \u{1b}[2m1\u{1b}[0m │ force_error \"My error\"\n   · \u{1b}[35;1m            ─────┬────\u{1b}[0m\n   ·                  \u{1b}[35;1m╰── \u{1b}[35;1mhere's the error\u{1b}[0m\u{1b}[0m\n   ╰────\n\n"
     );
 }
 
@@ -92,7 +92,6 @@ snippet line 1: force_error "my error"
     label at line 1, columns 13 to 22: here's the error
 
 
-set the `NU_BACKTRACE=1` environment variable to display a backtrace.
 "#,
     );
 }