From aed6ba48b81d5b319e57ca1795aece5b32d79a0b Mon Sep 17 00:00:00 2001 From: Wolfgang Müller Date: Fri, 9 Jul 2021 22:28:20 +0200 Subject: content: Add new post: "Wrap-around search in less(1)" --- content/7/index.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 content/7/index.md diff --git a/content/7/index.md b/content/7/index.md new file mode 100644 index 0000000..fb0fb1b --- /dev/null +++ b/content/7/index.md @@ -0,0 +1,41 @@ ++++ +date = 2021-07-09T22:28:13+02:00 +title = "Wrap-around search in less(1)" + +[taxonomies] +tags = ["TIL"] ++++ + +I recently became frightfully aware of how much time I spend in +[`less(1)`](https://greenwoodsoftware.com/less/). + +It's never been a utility I gave much conscious thought and I realized that it +is one of those programs that go largely ignored and underappreciated just for +their ubiquity and unobtrusiveness. For most people piping something to +`less(1)` has most likely become second nature. In the same way it is surely +unthinkable for some to read log files and manuals in anything other than +`less(1)`, or use any other pager for the Git suite. + +If you've not given `less(1)` a closer look, I invite you to read [its +manual](https://man7.org/linux/man-pages/man1/less.1.html). There's lots of +neat features you might have missed, like filtering lines with `&`, toggling any +command-line option on the fly with `-`, following input as it appears with `F`, +or opening the current file in an editor with `v`. + +A feature I discovered only recently is the "wrap-around search modifier". +Introduced in +[late 2020](https://github.com/gwsw/less/commit/27e2643875e010c30f9d51eb1124855b707806f4) +(past version 565), this modifier obsoletes the common dance of `g` and `n` to +redo the current search on the whole file. Now, if you hit `Ctrl-W` right after +issuing a forward or backward search, `less(1)` toggles search wrap-around. + +There is no option to turn this behaviour on automatically. However, it is +possible to override the `/` and `?` bindings using +[`lesskey(1)`](https://man7.org/linux/man-pages/man1/lesskey.1.html). +Put the following in `~/.lesskey`, run `lesskey` +([not needed](https://github.com/gwsw/less/commit/a2137dcb01cbf46f148828a7389540dd5b51bff1) +on versions past 590), and `less(1)` should now wrap the search automatically: + + #command + / forw-search ^W + ? back-search ^W -- cgit v1.2.3-2-gb3c3