aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src
diff options
context:
space:
mode:
authorOskar Nehlin2021-10-23 11:06:40 +0000
committerGitHub2021-10-23 11:06:40 +0000
commit0f886af4b993c836bb2d522f6e036362593ff8b8 (patch)
treeeb1c31821c1adff8b98132f8ad15a170ca714e5b /helix-term/src
parent4ee92cad19cc94f0751f91fa9391d1899353d740 (diff)
Add commands for moving between splits with a direction (#860)
* Add commands for moving between splits with a direction * Update keymaps * Change picker mapping * Add test and clean up some comments
Diffstat (limited to 'helix-term/src')
-rw-r--r--helix-term/src/commands.rs20
-rw-r--r--helix-term/src/keymap.rs6
-rw-r--r--helix-term/src/ui/picker.rs2
3 files changed, 26 insertions, 2 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 272a9d9a..9d73ba6e 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -301,6 +301,10 @@ impl Command {
expand_selection, "Expand selection to parent syntax node",
jump_forward, "Jump forward on jumplist",
jump_backward, "Jump backward on jumplist",
+ jump_view_right, "Jump to the split to the right",
+ jump_view_left, "Jump to the split to the left",
+ jump_view_up, "Jump to the split above",
+ jump_view_down, "Jump to the split below",
rotate_view, "Goto next window",
hsplit, "Horizontal bottom split",
vsplit, "Vertical right split",
@@ -4373,6 +4377,22 @@ fn rotate_view(cx: &mut Context) {
cx.editor.focus_next()
}
+fn jump_view_right(cx: &mut Context) {
+ cx.editor.focus_right()
+}
+
+fn jump_view_left(cx: &mut Context) {
+ cx.editor.focus_left()
+}
+
+fn jump_view_up(cx: &mut Context) {
+ cx.editor.focus_up()
+}
+
+fn jump_view_down(cx: &mut Context) {
+ cx.editor.focus_down()
+}
+
// split helper, clear it later
fn split(cx: &mut Context, action: Action) {
let (view, doc) = current!(cx.editor);
diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs
index cd4d3a32..f877387c 100644
--- a/helix-term/src/keymap.rs
+++ b/helix-term/src/keymap.rs
@@ -520,9 +520,13 @@ impl Default for Keymaps {
"C-w" => { "Window"
"C-w" | "w" => rotate_view,
- "C-h" | "h" => hsplit,
+ "C-s" | "s" => hsplit,
"C-v" | "v" => vsplit,
"C-q" | "q" => wclose,
+ "C-h" | "h" => jump_view_left,
+ "C-j" | "j" => jump_view_down,
+ "C-k" | "k" => jump_view_up,
+ "C-l" | "l" => jump_view_right,
},
// move under <space>c
diff --git a/helix-term/src/ui/picker.rs b/helix-term/src/ui/picker.rs
index 1f08cf13..7e257c0b 100644
--- a/helix-term/src/ui/picker.rs
+++ b/helix-term/src/ui/picker.rs
@@ -373,7 +373,7 @@ impl<T: 'static> Component for Picker<T> {
return close_fn;
}
KeyEvent {
- code: KeyCode::Char('h'),
+ code: KeyCode::Char('s'),
modifiers: KeyModifiers::CONTROL,
} => {
if let Some(option) = self.selection() {