diff kitten: Add keybindings to scroll by a page
This commit is contained in:
parent
219d3161d9
commit
a33ebce3c9
@ -73,7 +73,7 @@ def parse_scroll_by(func, rest):
|
||||
@func_with_args('scroll_to')
|
||||
def parse_scroll_to(func, rest):
|
||||
rest = rest.lower()
|
||||
if rest not in {'start', 'end', 'next-change', 'prev-change'}:
|
||||
if rest not in {'start', 'end', 'next-change', 'prev-change', 'next-page', 'prev-page'}:
|
||||
rest = 'start'
|
||||
return func, rest
|
||||
|
||||
|
||||
@ -47,6 +47,9 @@ map down scroll_by 1
|
||||
map up scroll_by -1
|
||||
map home scroll_to start
|
||||
map end scroll_to end
|
||||
map page_down scroll_to next-page
|
||||
map page_up scroll_to prev-page
|
||||
map space scroll_to next-page
|
||||
map n scroll_to next-change
|
||||
map p scroll_to prev-change
|
||||
map a change_context all
|
||||
|
||||
@ -76,6 +76,9 @@ class DiffHandler(Handler):
|
||||
where = args[0]
|
||||
if 'change' in where:
|
||||
return self.scroll_to_next_change(backwards='prev' in where)
|
||||
if 'page' in where:
|
||||
amt = self.num_lines * (1 if 'next' in where else -1)
|
||||
else:
|
||||
amt = len(self.diff_lines) * (1 if 'end' in where else -1)
|
||||
return self.scroll_lines(amt)
|
||||
if func == 'change_context':
|
||||
|
||||
@ -204,13 +204,15 @@ def parse_kittens_shortcut(sc):
|
||||
mods = resolved_mods
|
||||
is_text = False
|
||||
rkey = parts[-1]
|
||||
if text_match(rkey) is None:
|
||||
tkey = text_match(rkey)
|
||||
if tkey is None:
|
||||
rkey = rkey.upper()
|
||||
rkey = config_key_map.get(rkey)
|
||||
if rkey is None:
|
||||
raise ValueError('Unknown shortcut key: {}'.format(sc))
|
||||
else:
|
||||
is_text = True
|
||||
rkey = tkey
|
||||
return mods, rkey, is_text
|
||||
|
||||
|
||||
|
||||
2
kitty/key_encoding.py
generated
2
kitty/key_encoding.py
generated
@ -258,6 +258,8 @@ text_keys = string.ascii_uppercase + string.ascii_lowercase + string.digits + '`
|
||||
|
||||
|
||||
def text_match(key):
|
||||
if key.upper() == 'SPACE':
|
||||
return ' '
|
||||
if key not in text_keys:
|
||||
return
|
||||
return key
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user