fish-shell/doc_src/cmds
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
..
_.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
abbr.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
alias.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
and.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
argparse.rst argparse: Allow usage without optspecs 2022-06-27 17:02:20 +02:00
begin.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
bg.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
bind.rst Add Control+R incremental history search in pager 2022-07-30 23:27:24 +02:00
block.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
break.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
breakpoint.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
builtin.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
case.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
cd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
cdh.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
command.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
commandline.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
complete.rst Allow complete to have multiple conditions 2022-05-30 20:47:14 +02:00
contains.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
continue.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
count.rst docs synopsis: make all placeholder arguments uppercase 2022-01-19 22:56:41 +08:00
dirh.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
dirs.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
disown.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
echo.rst docs: removed enumeration item from echo docs 2022-04-22 20:16:14 +02:00
else.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
emit.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
end.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
eval.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
exec.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
exit.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
false.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fg.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish_add_path.rst docs: Link some more to $PATH 2022-07-18 20:53:37 +02:00
fish_breakpoint_prompt.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_command_not_found.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_config.rst Fix copy-pasteo in fish_config docs 2022-06-17 09:23:38 +02:00
fish_git_prompt.rst fish_git_prompt: Print cleanstate character whenever it's defined 2022-06-08 21:23:43 +02:00
fish_greeting.rst docs: Link fish_greeting function from FAQ 2022-07-18 20:52:16 +02:00
fish_hg_prompt.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_indent.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish_is_root_user.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_key_reader.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish_mode_prompt.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_opt.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish_prompt.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_right_prompt.rst We no longer have two doc systems, move sphinx_doc_src back to doc_src 2020-02-19 17:00:35 -08:00
fish_status_to_signal.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_svn_prompt.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish_title.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_update_completions.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
fish_vcs_prompt.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
fish.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
for.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
funced.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
funcsave.rst Put funcsave long option back 2022-03-24 20:11:39 +01:00
function.rst docs: list reserved keywords 2022-06-16 19:45:55 +10:00
functions.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
help.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
history.rst docs: standardise on definition lists for options 2022-03-12 00:21:12 +08:00
if.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
isatty.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
jobs.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
math.rst docs/math: Some simple changes 2022-05-14 10:59:41 +02:00
nextd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
not.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
open.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
or.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
path.rst Add path mtime (#9057) 2022-07-18 20:39:01 +02:00
popd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
prevd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
printf.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
prompt_hostname.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
prompt_login.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
prompt_pwd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
psub.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
pushd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
pwd.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
random.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
read.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
realpath.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
return.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
set_color.rst set_color: Print the given colors with --print-colors 2022-07-01 21:28:35 +02:00
set.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
source.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
status.rst Document that status fish-path is platform-specific 2022-06-16 16:39:09 +02:00
string-collect.rst Fix more lost string documentation 2022-05-14 10:05:02 +02:00
string-escape.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-join.rst New -n flag for string join. (#8774) 2022-03-13 11:47:33 +01:00
string-join0.rst We no longer have two doc systems, move sphinx_doc_src back to doc_src 2020-02-19 17:00:35 -08:00
string-length.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-lower.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-match.rst Fix more lost string documentation 2022-05-14 10:05:02 +02:00
string-pad.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-repeat.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-replace.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-split.rst Docs: be more consistent about argument formatting 2022-05-14 10:05:02 +02:00
string-split0.rst We no longer have two doc systems, move sphinx_doc_src back to doc_src 2020-02-19 17:00:35 -08:00
string-sub.rst Fix more lost string documentation 2022-05-14 10:05:02 +02:00
string-trim.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string-unescape.rst We no longer have two doc systems, move sphinx_doc_src back to doc_src 2020-02-19 17:00:35 -08:00
string-upper.rst string docs: format options and arguments in line with other pages 2022-03-12 22:22:02 +08:00
string.rst Docs: be more consistent about argument formatting 2022-05-14 10:05:02 +02:00
suspend.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
switch.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
test.rst Document the three new [ operators 2022-07-16 12:40:36 -07:00
time.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
trap.rst Allow trapping SIGINT and SIGTERM in scripts 2022-05-28 17:44:13 -07:00
true.rst docs synopsis: add HTML highlighing and automate manpage markup 2022-01-19 22:56:41 +08:00
type.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
ulimit.rst ulimit: add new limits from FreeBSD/NetBSD 2022-03-24 10:23:04 +08:00
umask.rst docs: standardise on definition lists for options 2022-03-12 00:21:12 +08:00
vared.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
wait.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00
while.rst docs: omnibus cleanup 2022-03-12 00:21:13 +08:00