@@ -100,6 +100,12 @@ pub type Keymaps = HashMap<Mode, Keymap>;
101#[macro_export]
101#[macro_export]
102macro_rules! key {
102macro_rules! key {
105+ code: KeyCode::$key,
106+ modifiers: KeyModifiers::NONE,
103 ($($ch:tt)*) => {
109 ($($ch:tt)*) => {
104 KeyEvent {
110 KeyEvent {
105 code: KeyCode::Char($($ch)*),
111 code: KeyCode::Char($($ch)*),
@@ -133,22 +139,10 @@ pub fn default() -> Keymaps {
133 key!('k') => commands::move_line_up,
139 key!('k') => commands::move_line_up,
134 key!('l') => commands::move_char_right,
140 key!('l') => commands::move_char_right,
137− code: KeyCode::Left,
138− modifiers: KeyModifiers::NONE
139− } => commands::move_char_left,
142+ key!(Left) => commands::move_char_left,
141− code: KeyCode::Down,
142− modifiers: KeyModifiers::NONE
143− } => commands::move_line_down,
143+ key!(Down) => commands::move_line_down,
146− modifiers: KeyModifiers::NONE
147− } => commands::move_line_up,
144+ key!(Up) => commands::move_line_up,
149− code: KeyCode::Right,
150− modifiers: KeyModifiers::NONE
151− } => commands::move_char_right,
145+ key!(Right) => commands::move_char_right,
153 key!('t') => commands::find_till_char,
147 key!('t') => commands::find_till_char,
154 key!('f') => commands::find_next_char,
148 key!('f') => commands::find_next_char,
@@ -159,15 +153,8 @@ pub fn default() -> Keymaps {
159 key!('r') => commands::replace,
153 key!('r') => commands::replace,
160 key!('R') => commands::replace_with_yanked,
154 key!('R') => commands::replace_with_yanked,
163− code: KeyCode::Home,
164− modifiers: KeyModifiers::NONE
165− } => commands::move_line_start,
156+ key!(Home) => commands::move_line_start,
169− modifiers: KeyModifiers::NONE
170− } => commands::move_line_end,
157+ key!(End) => commands::move_line_end,
172 key!('w') => commands::move_next_word_start,
159 key!('w') => commands::move_next_word_start,
173 key!('b') => commands::move_prev_word_start,
160 key!('b') => commands::move_prev_word_start,
@@ -255,19 +242,10 @@ pub fn default() -> Keymaps {
256 // C / altC = copy (repeat) selections on prev/next lines
243 // C / altC = copy (repeat) selections on prev/next lines
260− modifiers: KeyModifiers::NONE
261− } => commands::normal_mode,
245+ key!(Esc) => commands::normal_mode,
263− code: KeyCode::PageUp,
264− modifiers: KeyModifiers::NONE
265− } => commands::page_up,
246+ key!(PageUp) => commands::page_up,
247+ key!(PageDown) => commands::page_down,
266 ctrl!('b') => commands::page_up,
248 ctrl!('b') => commands::page_up,
268− code: KeyCode::PageDown,
269− modifiers: KeyModifiers::NONE
270− } => commands::page_down,
271 ctrl!('f') => commands::page_down,
249 ctrl!('f') => commands::page_down,
272 ctrl!('u') => commands::half_page_up,
250 ctrl!('u') => commands::half_page_up,
273 ctrl!('d') => commands::half_page_down,
251 ctrl!('d') => commands::half_page_down,
@@ -280,10 +258,8 @@ pub fn default() -> Keymaps {
281 // z family for save/restore/combine from/to sels from register
259 // z family for save/restore/combine from/to sels from register
283− KeyEvent { // supposedly ctrl!('i') but did not work
261+ // supposedly ctrl!('i') but did not work
285− modifiers: KeyModifiers::NONE,
286− } => commands::jump_forward,
262+ key!(Tab) => commands::jump_forward,
287 ctrl!('o') => commands::jump_backward,
263 ctrl!('o') => commands::jump_backward,
288 // ctrl!('s') => commands::save_selection,
264 // ctrl!('s') => commands::save_selection,
@@ -303,22 +279,10 @@ pub fn default() -> Keymaps {
303 key!('k') => commands::extend_line_up,
279 key!('k') => commands::extend_line_up,
304 key!('l') => commands::extend_char_right,
280 key!('l') => commands::extend_char_right,
307− code: KeyCode::Left,
308− modifiers: KeyModifiers::NONE
309− } => commands::extend_char_left,
282+ key!(Left) => commands::extend_char_left,
311− code: KeyCode::Down,
312− modifiers: KeyModifiers::NONE
313− } => commands::extend_line_down,
283+ key!(Down) => commands::extend_line_down,
316− modifiers: KeyModifiers::NONE
317− } => commands::extend_line_up,
284+ key!(Up) => commands::extend_line_up,
319− code: KeyCode::Right,
320− modifiers: KeyModifiers::NONE
321− } => commands::extend_char_right,
285+ key!(Right) => commands::extend_char_right,
323 key!('w') => commands::extend_next_word_start,
287 key!('w') => commands::extend_next_word_start,
324 key!('b') => commands::extend_prev_word_start,
288 key!('b') => commands::extend_prev_word_start,
@@ -329,18 +293,9 @@ pub fn default() -> Keymaps {
330 key!('T') => commands::extend_till_prev_char,
294 key!('T') => commands::extend_till_prev_char,
331 key!('F') => commands::extend_prev_char,
295 key!('F') => commands::extend_prev_char,
333− code: KeyCode::Home,
334− modifiers: KeyModifiers::NONE
335− } => commands::extend_line_start,
296+ key!(Home) => commands::extend_line_start,
338− modifiers: KeyModifiers::NONE
339− } => commands::extend_line_end,
297+ key!(End) => commands::extend_line_end,
342− modifiers: KeyModifiers::NONE
343− } => commands::exit_select_mode,
298+ key!(Esc) => commands::exit_select_mode,
345 .into_iter(),
300 .into_iter(),
@@ -351,26 +306,11 @@ pub fn default() -> Keymaps {
351 Mode::Normal => normal,
306 Mode::Normal => normal,
352 Mode::Select => select,
307 Mode::Select => select,
353 Mode::Insert => hashmap!(
308 Mode::Insert => hashmap!(
356− modifiers: KeyModifiers::NONE
357− } => commands::normal_mode as Command,
309+ key!(Esc) => commands::normal_mode as Command,
359− code: KeyCode::Backspace,
360− modifiers: KeyModifiers::NONE
361− } => commands::insert::delete_char_backward,
310+ key!(Backspace) => commands::insert::delete_char_backward,
363− code: KeyCode::Delete,
364− modifiers: KeyModifiers::NONE
365− } => commands::insert::delete_char_forward,
311+ key!(Delete) => commands::insert::delete_char_forward,
367− code: KeyCode::Enter,
368− modifiers: KeyModifiers::NONE
369− } => commands::insert::insert_newline,
312+ key!(Enter) => commands::insert::insert_newline,
372− modifiers: KeyModifiers::NONE
373− } => commands::insert::insert_tab,
313+ key!(Tab) => commands::insert::insert_tab,
375 ctrl!('x') => commands::completion,
315 ctrl!('x') => commands::completion,
376 ctrl!('w') => commands::insert::delete_word_backward,
316 ctrl!('w') => commands::insert::delete_word_backward,