lesskeyを使うとlessはもっと便利になる

lessは豊富なオプションを備えたとても便利なページャーですが、lesskeyを使った設定を行うことでより便利に使うことができます。

記事後半ではlessの小技（？）を載せています。

## lesskey

ref: https://www.freebsd.org/cgi/man.cgi?manpath=CentOS+7.1&query=lesskey

lesskeyではlessのキーバインドを設定/変更することができます。また、オプションも設定することができますので、lessに関する設定をまとめることができ管理もしやすくなります。
（もう`.bashrc`に`alias less="less -M"`なんて書かなくていいのです！）

設定ファイルは `#command`, `#line-edit`, `#env` の3つのセクションに分かれています。それぞれのセクションに記述されたキーはデフォルトで設定されているものを上書きします。

CentOSでは`~/.lesskey`として配置後、lesskeyコマンドを実行することで適用されます。

```sh:bash
$ touch ~/.lesskey && vim $_
$ lesskey
```


### `#command` - 新しいキーバインドを設定する、もしくは既存のキーバインドを変更する。

`[key] [command]`の形式で記述します。
設定できるコマンドはmanに一覧がありますので、そちらを参照してください。
自分は`-S`オプションを使用して折り返さないようにしているので、水平スクロールができるように設定しています。

特殊キーの例
* `\e` ... <kbd>ESC</kbd>
* `^[.]` ... <kbd>Ctrl</kbd> + 任意のキー。`^X`は<kbd>Ctrl</kbd> + <kbd>X</kbd>。

```sh:~/.lesskey
#command
h left-scroll # デフォルトではhelpを呼び出す
l right-scroll
\eh help
zz quit
```


### `#line-edit` - 閲覧中のファイルを編集する際のキーバインドを変更する。

好みのエディタがある人がほとんどだと思うので、あまり恩恵を受けることはなさそう
（デフォルトでは<kbd>v</kbd>です）。
自分はこのセクションのうまい使い方を見つけられていません。

設定の仕方は`#command`と同じ。


### `#env` - オプション、環境変数を指定する。

冒頭でも書きましたが、`~/.bashrc`に`LESSCHARSET=utf-8`と記述したり、`alias less="less -M"`としたりする人も多いと思います。
それらはこのセクションで設定できます。

```sh:~/.lesskey
#command
  ...
#line-edit
  ...
#env
LESS = -MigSFX~RnW -x4
LESSCHARSET = utf-8
```


## less

ref: https://www.freebsd.org/cgi/man.cgi?manpath=CentOS+7.1&query=less

lessは通常のオプション以外に`+F`のような指定も受け付けます。これは、通常lessで閲覧中に入力するコマンドを起動前に指定できるというもので、例えば`+G`とすればless起動時にファイルの末尾を表示します。

個人的によく使うのが、`+F +'&(some|any)thing^M'`のような使い方。（grepでやれとの声も聞こえてきそうですが）こうすることで、ログファイルなどから特定の語を含む行だけを抜き出して閲覧するといったことができます。`^M`は<kbd>Ctrl</kbd> + <kbd>v</kbd> <kbd>Enter</kbd>で入力します（そのままコピペするとless起動時に<kbd>Enter</kbd>の入力を求められます）。

```sh
$ less misoshiru.txt
https://ja.wikipedia.org/w/index.php?title=%E5%91%B3%E5%99%8C%E6%B1%81&oldid=72536132
2019年4月27日 15:28 (UTC) の版

味噌汁
======

出典: フリー百科事典『ウィキペディア（Wikipedia）』

味噌汁（みそしる）は、日本料理における汁物の一つで、だしを味噌で調味した汁に、野菜や豆腐、麸や魚介類などの食品を実としたスープ様の料理である[1]。御味御付（御御御付、おみおつけ）ともいう[1]。

概要
----

日本の食文化において、飯とともに提供される汁物料理の代表である。
本膳料理では、基本となる本膳の汁物は味噌汁とされ、膾の1品、平皿（ひらざら）と呼ぶ煮物の1品、そして焼き魚等の焼物の1品の三菜と共に、一汁三菜の汁を構成する。[2]
懐石料理でも、飯と汁物と向付が最初に提供されるが、これも味噌汁が多い。[2][3][4][5]
会席料理では、飯と共に「止め椀」または「留め椀」（とめわん）と呼ばれる汁物が最後に提供されるが、これも味噌汁が多い。[2][3][4][5]
家庭料理ではおふくろの味と称される事もあり、また、各地で古くから作られており、名物料理であったり町おこしの料理とされたりする。
また一汁一菜として粗食の代表とされる食生活でも、欠かせないものとされている。とりわけ味噌汁は、主食を食べるに際しての食欲増進の役割をおかずとともに果たすと同時に、味噌に含まれる大豆の蛋白質は、かつての低蛋白の日本食における主要な蛋白源であり、また汗とともに消耗する塩分の補給に大きな役割を果たしていた。
西洋料理のスープに相当する側面がある。パンもご飯もそれぞれ固形物であり、味に乏しく単独で食べるのは口寂しい。そこで食べ方のひとつとして、スープ・味噌汁という、塩味がある汁物と一緒に食べるという点で、両者は共通するものがある。ヨーロッパのスープは、硬くなったパンをふやかして柔らかくして食べるという側面は、ご飯と味噌汁
日本料理で類似するものに吸物があるが、味噌汁が飯と飲食されるのに対して、吸物は酒と飲食される肴として区別される。[2] 近年は外食産業の発展などによる食文化の変化から、家庭で味噌汁を作ることは昭和の時代に比べ少なくなっているという。
misoshiru.txt byte 2579/2579 (END)

$ less +'&味噌汁^M' sample.txt
味噌汁
味噌汁（みそしる）は、日本料理における汁物の一つで、だしを味噌で調味した汁に、野菜や豆腐、麸や魚介類などの食品を実としたスープ様の料理である[1]。御味御付（御御御付、おみおつけ）ともいう[1]。
本膳料理では、基本となる本膳の汁物は味噌汁とされ、膾の1品、平皿（ひらざら）と呼ぶ煮物の1品、そして焼き魚等の焼物の1品の三菜と共に、一汁三菜の汁を構成する。[2]
懐石料理でも、飯と汁物と向付が最初に提供されるが、これも味噌汁が多い。[2][3][4][5]
会席料理では、飯と共に「止め椀」または「留め椀」（とめわん）と呼ばれる汁物が最後に提供されるが、これも味噌汁が多い。[2][3][4][5]
また一汁一菜として粗食の代表とされる食生活でも、欠かせないものとされている。とりわけ味噌汁は、主食を食べるに際しての食欲増進の役割をおかずとともに果たすと同時に、味噌に含まれる大豆の蛋白質は、かつての低蛋白の日本食における主要な蛋白源であり、また汗とともに消耗する塩分の補給に大きな役割を果たしていた。
西洋料理のスープに相当する側面がある。パンもご飯もそれぞれ固形物であり、味に乏しく単独で食べるのは口寂しい。そこで食べ方のひとつとして、スープ・味噌汁という、塩味がある汁物と一緒に食べるという点で、両者は共通するものがある。ヨーロッパのスープは、硬くなったパンをふやかして柔らかくして食べるという側面は、ご飯と味噌汁
日本料理で類似するものに吸物があるが、味噌汁が飯と飲食されるのに対して、吸物は酒と飲食される肴として区別される。[2] 近年は外食産業の発展などによる食文化の変化から、家庭で味噌汁を作ることは昭和の時代に比べ少なくなっているという。
& misoshiru.txt byte 2579/2579 (END)
```