From 9b40208e3bc4b68ffbb03ae4d8be4cea4bda1136 Mon Sep 17 00:00:00 2001 From: Peter Elliott Date: Tue, 6 Jul 2021 19:47:00 -0600 Subject: [PATCH] Documentation: Add less(1) man page, and link to it in others --- Base/usr/share/man/man1/less.md | 78 +++++++++++++++++++++++++++++++++ Base/usr/share/man/man1/man.md | 4 ++ Base/usr/share/man/man1/more.md | 7 ++- 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Base/usr/share/man/man1/less.md diff --git a/Base/usr/share/man/man1/less.md b/Base/usr/share/man/man1/less.md new file mode 100644 index 00000000000..99f0b50bb9a --- /dev/null +++ b/Base/usr/share/man/man1/less.md @@ -0,0 +1,78 @@ +## Name + +`less` - A full-featured terminal pager. + +## Synopsis + +```**sh +$ cat file | less [-PXem] +$ less [-PXem] [file] +$ cat file | more +$ more [file] +``` + +## Description + +`less` is a terminal pager that allows backwards movement. It is inspired by, +but largely incompatible with +[GNU less](http://www.greenwoodsoftware.com/less/index.html). + +## Options + +* `-P`, `--prompt`: Set the prompt format string. See [Prompts](#Prompts) for more details. +* `-X`, `--no-init`: Don't switch to the xterm alternate buffer on startup. +* `-e`, `--quit-at-eof`: Immediately exit less when the last line of the document is reached. +* `-m`, `--emulate-more`: Apply `-Xe`, set the prompt to `--More--`, and disable + scrollback. This option is automatically applied when `less` is executed as `more` + +## Commands + +Commands may be preceded by a decimal number `N`. Currently, this feature +does not exist, and no command use `N`. + +| Command | Description | +|---------|-------------| +| `q` | Exit less. | +| `j` or `DOWNARROW` or `ENTER` | Go to the next line. | +| `k` or `UPARROW` | Go to the previous line. | +| `SPACE` | Go to the next page. | + +## Prompts + +`less` accepts a special prompt string with the `-P` option. prompts accept a +variety of format specifiers so that they adapt to `less`'s state. + +A `%` followed by a letter will be replaced with the associated variable. If +such a variable does not exist, or currently has no value, it will be replaced +with a `?`. + +| Variable | Description | +|----------|-------------| +| `%f` | Replaced with the name of the current file | +| `%l` | Replaced with the current line number | + +A `?` followed by a letter acts as an if expression on the associated +condition. `:` then acts as the else, and `.` acts as the end token. for example +if you wanted to print 'true' if you are at the end of the file and 'false' +otherwise, your prompt would be `?etrue:false.`. These expressions are +arbitrarily nestable. If a condition does not exist, then it will always +evaluate it's false branch. + +| Condition | Description | +|----------|-------------| +| `?f` | True when reading from a file other than stdin. | +| `?e` | True when at the end of a file. | + +A `\\` followed by any character will be replaced with the literal value of the +character. For instance, `\\%l` would render as `%l`. + +All other characters are treated normally. + +#### examples + +`less`'s current default prompt: `'?f%f :.(line %l)?e (END):.'` + +## See Also + +* [more(1)](more.md) For a simpler pager that less implements. +* [man(1)](man.md) For serenity's manual pager, that uses less. diff --git a/Base/usr/share/man/man1/man.md b/Base/usr/share/man/man1/man.md index a151b71c184..bcb6bab69e3 100644 --- a/Base/usr/share/man/man1/man.md +++ b/Base/usr/share/man/man1/man.md @@ -50,3 +50,7 @@ $ man 2 mkdir `man` looks for man pages under `/usr/share/man`. For example, this man page should be located at `/usr/share/man/man1/man.md`. + +## See Also + +* [less(1)](less.md) For the terminal pager that `man` uses by default \ No newline at end of file diff --git a/Base/usr/share/man/man1/more.md b/Base/usr/share/man/man1/more.md index 0df00cb809f..cd9f1b599e0 100644 --- a/Base/usr/share/man/man1/more.md +++ b/Base/usr/share/man/man1/more.md @@ -11,11 +11,16 @@ $ more ## Description `more` reads data from standard input and prints it to standard output, screen by screen. +`more` is a symlink for [`less(1)`](less.md), which has a more emulation mode. ## Examples ```sh # dmesg | more ... ---[ more ]-- +--More-- ``` + +## See Also + +* [less(1)](less.md) For the more advanced terminal pager that implements more. \ No newline at end of file