reedline/edit_mode/vi/
vi_keybindings.rs1use crossterm::event::{KeyCode, KeyModifiers};
2
3use crate::{
4 edit_mode::{
5 keybindings::{
6 add_common_control_bindings, add_common_edit_bindings, add_common_navigation_bindings,
7 edit_bind,
8 },
9 Keybindings,
10 },
11 EditCommand,
12};
13
14pub fn default_vi_normal_keybindings() -> Keybindings {
16 let mut kb = Keybindings::new();
17 use EditCommand as EC;
18 use KeyCode as KC;
19 use KeyModifiers as KM;
20
21 add_common_control_bindings(&mut kb);
22 add_common_navigation_bindings(&mut kb);
23 kb.add_binding(KM::NONE, KC::Backspace, edit_bind(EC::MoveLeft));
25 kb.add_binding(KM::NONE, KC::Delete, edit_bind(EC::Delete));
26
27 kb
28}
29
30pub fn default_vi_insert_keybindings() -> Keybindings {
32 let mut kb = Keybindings::new();
33
34 add_common_control_bindings(&mut kb);
35 add_common_navigation_bindings(&mut kb);
36 add_common_edit_bindings(&mut kb);
37
38 kb
39}