on master help sign in
add wonly -- window only (#1057)
4d22454Bob
book/src/keymap.md+1
@@ -194,6 +194,7 @@ This layer is similar to vim keybindings as kakoune does not support window.
194| `k`, `Ctrl-k`, `up` | Move to split above | `jump_view_up` |
194| `k`, `Ctrl-k`, `up` | Move to split above | `jump_view_up` |
195| `l`, `Ctrl-l`, `right` | Move to right split | `jump_view_right` |
195| `l`, `Ctrl-l`, `right` | Move to right split | `jump_view_right` |
196| `q`, `Ctrl-q` | Close current window | `wclose` |
196| `q`, `Ctrl-q` | Close current window | `wclose` |
197+| `o`, `Ctrl-o` | Only keep the current window, closing all the others | `wonly` |
197
198
198#### Space mode
199#### Space mode
199
200
helix-term/src/commands.rs+15
@@ -320,6 +320,7 @@ impl Command {
320 hsplit, "Horizontal bottom split",
320 hsplit, "Horizontal bottom split",
321 vsplit, "Vertical right split",
321 vsplit, "Vertical right split",
322 wclose, "Close window",
322 wclose, "Close window",
323+ wonly, "Current window only",
323 select_register, "Select register",
324 select_register, "Select register",
324 align_view_middle, "Align view middle",
325 align_view_middle, "Align view middle",
325 align_view_top, "Align view top",
326 align_view_top, "Align view top",
@@ -4723,6 +4724,20 @@ fn wclose(cx: &mut Context) {
4723 cx.editor.close(view_id, /* close_buffer */ false);
4724 cx.editor.close(view_id, /* close_buffer */ false);
4724}
4725}
4725
4726
4727+fn wonly(cx: &mut Context) {
4728+ let views = cx
4729+ .editor
4730+ .tree
4731+ .views()
4732+ .map(|(v, focus)| (v.id, focus))
4733+ .collect::<Vec<_>>();
4734+ for (view_id, focus) in views {
4735+ if !focus {
4736+ cx.editor.close(view_id, /* close_buffer */ false);
4737+ }
4738+ }
4739+}
4740+
4726fn select_register(cx: &mut Context) {
4741fn select_register(cx: &mut Context) {
4727 cx.on_next_key(move |cx, event| {
4742 cx.on_next_key(move |cx, event| {
4728 if let Some(ch) = event.char() {
4743 if let Some(ch) = event.char() {
helix-term/src/keymap.rs+2
@@ -583,6 +583,7 @@ impl Default for Keymaps {
583 "C-s" | "s" => hsplit,
583 "C-s" | "s" => hsplit,
584 "C-v" | "v" => vsplit,
584 "C-v" | "v" => vsplit,
585 "C-q" | "q" => wclose,
585 "C-q" | "q" => wclose,
586+ "C-o" | "o" => wonly,
586 "C-h" | "h" | "left" => jump_view_left,
587 "C-h" | "h" | "left" => jump_view_left,
587 "C-j" | "j" | "down" => jump_view_down,
588 "C-j" | "j" | "down" => jump_view_down,
588 "C-k" | "k" | "up" => jump_view_up,
589 "C-k" | "k" | "up" => jump_view_up,
@@ -609,6 +610,7 @@ impl Default for Keymaps {
609 "C-s" | "s" => hsplit,
610 "C-s" | "s" => hsplit,
610 "C-v" | "v" => vsplit,
611 "C-v" | "v" => vsplit,
611 "C-q" | "q" => wclose,
612 "C-q" | "q" => wclose,
613+ "C-o" | "o" => wonly,
612 "C-h" | "h" | "left" => jump_view_left,
614 "C-h" | "h" | "left" => jump_view_left,
613 "C-j" | "j" | "down" => jump_view_down,
615 "C-j" | "j" | "down" => jump_view_down,
614 "C-k" | "k" | "up" => jump_view_up,
616 "C-k" | "k" | "up" => jump_view_up,