Johannes Altmanninger dcff0a2f2b Add Control+R incremental history search in pager
This reimplements ridiculousfish/control_r which is a more future-proof
approach than #6686.
Pressing Control+R shows history in our pager and allows to search filter
commands with the pager search field.

On the surface, this works just like in other shells; though there are
some differences.

- Our pager shows multiple results at a time.
- Other shells allow to use up arrow/down arrow to select adjacent entries
  in history. Shouldn't be hard to implement but the hidden state might
  confuse users and it doesn't play well with up-or-search, so this is
  left out.

Users might expect the history pager to use subsequence matching (fuzzy
matching) like the completion pager, however due to the history pager design it
uses substring matching.  We could change this in future, however that means
we would also want to change the ordering from "reverse-chronological" to
"longest common subsequence" (e.g. what fuzzy finders do), because otherwise
a query "fis" might give this ordering:

            fsck /dev/disk/by-partlabel/Linux\x20filesystem
            fish

which is probably not what the user wants.

The pager shows only a small number of history items at a time.  This is
because, as explained above, the history pager does not support subsequence
matching, so navigating it does not scale well.

Closes #602
2022-07-30 23:27:24 +02:00
..
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-24 20:11:39 +01:00
2022-06-16 19:45:55 +10:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-05-14 10:59:41 +02:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-07-18 20:39:01 +02:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-07-16 12:40:36 -07:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00
2022-03-12 00:21:13 +08:00