From 496c9886cd07da7c55bf0c6f5dd51f54aac8e7fd Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sun, 25 Feb 2024 19:06:03 +0200 Subject: Update KeyMap a lil bit, add a readme, a license, and a tmux config --- src/KeyMap.zig | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/KeyMap.zig') diff --git a/src/KeyMap.zig b/src/KeyMap.zig index 110bc0b..1296f9e 100644 --- a/src/KeyMap.zig +++ b/src/KeyMap.zig @@ -94,18 +94,24 @@ pub fn defaultMap(allocator: Allocator) !KeyMap { try map.bind(&.{ Key.meta('g'), Key.char('g') }, Buffer.goToLine); // M-O <*> + // NOTE: These aren't meant to be real shortcuts, some terminal emulators output these for + // and and this was the easier way to configure them lol. try map.bind(&.{ Key.meta('O'), Key.char('F') }, Buffer.moveEndOfLine); try map.bind(&.{ Key.meta('O'), Key.char('H') }, Buffer.moveBeginningOfLine); // C-x C-<*> + // TODO: C-x C-b should list all buffers instead; list-buffers try map.bind(&.{ Key.ctrl('x'), Key.ctrl('b') }, Editor.switchBuffer); try map.bind(&.{ Key.ctrl('x'), Key.ctrl('c') }, Editor.saveBuffersExit); try map.bind(&.{ Key.ctrl('x'), Key.ctrl('f') }, Editor.openFile); try map.bind(&.{ Key.ctrl('x'), Key.ctrl('s') }, Buffer.save); + // TODO: C-x u undo + // TODO: C-x C-w write-file // C-x <*> try map.bind(&.{ Key.ctrl('x'), Key.char('b') }, Editor.switchBuffer); // TODO: C-x h for help + // TODO: C-x i insert-file try map.bind(&.{ Key.ctrl('x'), Key.char('k') }, Editor.killCurrentBuffer); // M-C-<*> @@ -120,6 +126,9 @@ pub fn defaultMap(allocator: Allocator) !KeyMap { try map.bind(&.{Key.meta(Key.left)}, Buffer.backwardWord); try map.bind(&.{Key.meta(Key.right)}, Buffer.forwardWord); try map.bind(&.{Key.meta(Key.up)}, Buffer.backwardParagraph); + // TODO: M-% query-replace + try map.bind(&.{Key.meta('<')}, Buffer.beginningOfBuffer); + try map.bind(&.{Key.meta('>')}, Buffer.endOfBuffer); try map.bind(&.{Key.meta('b')}, Buffer.backwardWord); try map.bind(&.{Key.meta('d')}, Buffer.deleteWord); try map.bind(&.{Key.meta('f')}, Buffer.forwardWord); @@ -128,9 +137,12 @@ pub fn defaultMap(allocator: Allocator) !KeyMap { // M-O is taken try map.bind(&.{Key.meta('p')}, Buffer.backwardParagraph); try map.bind(&.{Key.meta('v')}, Buffer.pageUp); + // TODO: M-w copy // C-<*> - try map.bind(&.{Key.ctrl(Key.backspace)}, Buffer.backwardDeleteWord); + // NOTE: Don't bind C-, that ends up being the same as C-/ + // TODO: In the future maybe encode outside of the character space + // try map.bind(&.{Key.ctrl(Key.backspace)}, Buffer.backwardDeleteWord); try map.bind(&.{Key.ctrl(Key.delete)}, Buffer.deleteWord); try map.bind(&.{Key.ctrl(Key.down)}, Buffer.forwardParagraph); try map.bind(&.{Key.ctrl(Key.end)}, Buffer.endOfBuffer); @@ -138,8 +150,11 @@ pub fn defaultMap(allocator: Allocator) !KeyMap { try map.bind(&.{Key.ctrl(Key.left)}, Buffer.backwardWord); try map.bind(&.{Key.ctrl(Key.right)}, Buffer.forwardWord); try map.bind(&.{Key.ctrl(Key.up)}, Buffer.backwardParagraph); + // TODO: C-@ | C-SPC set-mark + // TODO: C-_ | C-/ undo try map.bind(&.{Key.ctrl('a')}, Buffer.moveBeginningOfLine); try map.bind(&.{Key.ctrl('b')}, Buffer.backwardChar); + // C-c is reserved to be tmux's prefix char try map.bind(&.{Key.ctrl('d')}, Buffer.deleteChar); try map.bind(&.{Key.ctrl('e')}, Buffer.moveEndOfLine); try map.bind(&.{Key.ctrl('f')}, Buffer.forwardChar); @@ -151,10 +166,13 @@ pub fn defaultMap(allocator: Allocator) !KeyMap { try map.bind(&.{Key.ctrl('m')}, Buffer.insertNewline); // carriage return try map.bind(&.{Key.ctrl('n')}, Buffer.nextLine); try map.bind(&.{Key.ctrl('p')}, Buffer.previousLine); + // TODO: C-r backward-search try map.bind(&.{Key.ctrl('s')}, es.search); // TODO: C-q quotedInsert try map.bind(&.{Key.ctrl('v')}, Buffer.pageDown); + // TODO: C-w cut // C-x is taken + // TODO: C-y paste // <*> try map.bind(&.{Key.backspace}, Buffer.backwardDeleteChar); -- cgit v1.2.3