pressing '?' shows the key bindings

This commit is contained in:
nadrad 2023-07-23 11:09:17 +02:00
parent 566e292ef8
commit 9e049112f4
2 changed files with 58 additions and 4 deletions

56
h-m-m
View file

@ -183,6 +183,7 @@ const special_keys =
'ctrl_e' => "\005",
'ctrl_f' => "\006",
'ctrl_g' => "\007",
'ctrl_back_space' => "\010",
'ctrl_h' => "\010",
'ctrl_i' => "\011",
'ctrl_j' => "\012",
@ -247,7 +248,6 @@ const special_keys =
'del' => "\033\133\063\176",
'ctrl_del' => "\033\133\63\073\065\176",
'back_space' => "\177",
'ctrl_back_space' => "\010",
'enter' => "\012",
'space' => "\040",
@ -333,7 +333,6 @@ $keybindings['Q'] = 'shutdown';
$keybindings['r'] = 'collapse_other_branches';
$keybindings['R'] = 'collapse_inner';
$keybindings[special_keys['ctrl_r']] = 'redo';
$keybindings['s'] = 'save';
$keybindings['S'] = 'save_as';
@ -380,8 +379,8 @@ $keybindings['9'] = 'collapse_level_9';
$keybindings['|'] = 'toggle_align';
$keybindings['?'] = 'help';
$keybindings['/'] = 'search';
$keybindings['?'] = 'search';
$keybindings[special_keys['ctrl_f']] = 'search';
$keybindings['='] = 'increase_positive_rank';
@ -2074,6 +2073,57 @@ function go_to_bottom()
}
// }}}
// {{{ help
function help()
{
global $mm;
global $keybindings;
$keynames = array_flip(special_keys);
$commands = [];
foreach ($keybindings as $key => $command)
$commands[$command][] = ( $keynames[$key] ?? $key );
$output = [];
foreach ($commands as $command => $keys)
$output[] =
str_pad($command.' ',32,'.',STR_PAD_RIGHT)
.' '
.implode(', ',$keys);
sort($output);
$breakpoint = floor((count($output)-1)/2);
for ($i=0 ; $i<=$breakpoint ; $i++)
echo
' '
.str_pad($output[$i],56,' ',STR_PAD_RIGHT)
.
($output[$i+$breakpoint+1] ?? '')
."\n"
;
echo "\n";
message($mm, "Press any key to exit this help screen.");
while (true)
{
usleep(20000);
$in = fread(STDIN, 16);
if ($in != '')
break;
}
display($mm);
}
// }}}
// {{{ search

View file

@ -72,7 +72,7 @@ Collapsing and expanding:
Search:
* `/`, `?`, or `Ctrl+f` - searches for a phrase
* `/` or `Ctrl+f` - searches for a phrase
* `n` - goes to the next search result
* `N` - goes to the previous search result
@ -86,6 +86,10 @@ Save, export, quit, etc.:
* `Q` - quits, ignoring the changes
* `Ctrl+o` - open the active node as a file or URL using xdg-open
Misc:
* `?` - show the key bindings
In the text editor:
* `↓` - moves the cursor to the end of the line