runtime(doc): cross-link :| meaning :p and explain E749

E749 is given when :print (with any range) is issued on an empty buffer,
like the one you get with :new or :enew. Furthermore, due to Vi
compatibility :| is a synonym.

As a result, mappings intended to include a <bar> separator (esp. in the
case of boolean or "||") between commands can generate E749 on startup
when placed in a vimrc if the bars are not properly encoded or escaped.
[1]. Document this failure mode and synonym near the generated error,
and cross link with :help :bar. Note that one must read or scroll quite
a bit to find the mention of :| behaving like :print!

[1]: https://vi.stackexchange.com/q/46625/10604

closes: #17173

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
D. Ben Knoble
2025-04-21 10:19:51 +02:00
committed by Christian Brabandt
parent f39de60608
commit 187df69fd1

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 9.1. Last change: 2025 Feb 13
*various.txt* For Vim version 9.1. Last change: 2025 Apr 21
VIM REFERENCE MANUAL by Bram Moolenaar
@ -98,7 +98,9 @@ g8 Print the hex values of the bytes used in the
*:p* *:pr* *:print* *E749*
:[range]p[rint] [flags]
Print [range] lines (default current line).
Print [range] lines (default current line). Can also
be spelled `:[range]|` due to Vi compatibility (see
|:bar|). Gives an error in an empty buffer.
Note: If you are looking for a way to print your text
on paper see |:hardcopy|. In the GUI you can use the
File.Print menu entry.