search: implement move cursor word backward/forward

This commit is contained in:
Daniel Eklöf 2019-08-30 19:37:18 +02:00
parent 64460c5abe
commit 0fceed6f00
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -328,11 +328,29 @@ search_input(struct terminal *term, uint32_t key, xkb_keysym_t sym, xkb_mod_mask
term->search.cursor--;
}
else if ((mods == ctrl && sym == XKB_KEY_Left) ||
(mods == alt && sym == XKB_KEY_b))
{
size_t diff = distance_prev_word(term);
term->search.cursor -= diff;
assert(term->search.cursor >= 0);
assert(term->search.cursor <= term->search.len);
}
else if (mods == 0 && sym == XKB_KEY_Right) {
if (term->search.cursor < term->search.len)
term->search.cursor++;
}
else if ((mods == ctrl && sym == XKB_KEY_Right) ||
(mods == alt && sym == XKB_KEY_f))
{
size_t diff = distance_next_word(term);
term->search.cursor += diff;
assert(term->search.cursor >= 0);
assert(term->search.cursor <= term->search.len);
}
else if ((mods == 0 && sym == XKB_KEY_Home) ||
(mods == ctrl && sym == XKB_KEY_a))
term->search.cursor = 0;