Skip to content

Commit

Permalink
nano & less: added key bindings and improved search log navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
mattirn committed Sep 24, 2019
1 parent f2f911c commit d9ea992
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
4 changes: 2 additions & 2 deletions builtins/src/main/java/org/jline/builtins/Less.java
Original file line number Diff line number Diff line change
Expand Up @@ -1446,8 +1446,8 @@ private void bindKeys(KeyMap<Operation> map) {
map.bind(Operation.EXIT, "q", ":q", "Q", ":Q", "ZZ");
map.bind(Operation.FORWARD_ONE_LINE, "e", ctrl('E'), "j", ctrl('N'), "\r", key(terminal, Capability.key_down));
map.bind(Operation.BACKWARD_ONE_LINE, "y", ctrl('Y'), "k", ctrl('K'), ctrl('P'), key(terminal, Capability.key_up));
map.bind(Operation.FORWARD_ONE_WINDOW_OR_LINES, "f", ctrl('F'), ctrl('V'), " ");
map.bind(Operation.BACKWARD_ONE_WINDOW_OR_LINES, "b", ctrl('B'), alt('v'));
map.bind(Operation.FORWARD_ONE_WINDOW_OR_LINES, "f", ctrl('F'), ctrl('V'), " ", key(terminal, Capability.key_npage));
map.bind(Operation.BACKWARD_ONE_WINDOW_OR_LINES, "b", ctrl('B'), alt('v'), key(terminal, Capability.key_ppage));
map.bind(Operation.FORWARD_ONE_WINDOW_AND_SET, "z");
map.bind(Operation.BACKWARD_ONE_WINDOW_AND_SET, "w");
map.bind(Operation.FORWARD_ONE_WINDOW_NO_STOP, alt(' '));
Expand Down
23 changes: 17 additions & 6 deletions builtins/src/main/java/org/jline/builtins/Nano.java
Original file line number Diff line number Diff line change
Expand Up @@ -1620,14 +1620,19 @@ public String up(String hint) {
if (patternId < 0) {
patternId = 0;
}
boolean found = false;
for (int pid = patternId; pid < patterns.size(); pid++) {
if (hint.length() == 0
|| patterns.get(pid).startsWith(hint)) {
patternId = pid + 1;
out = patterns.get(pid);
found = true;
break;
}
}
if (!found) {
patternId = patterns.size();
}
}
lastMoveUp = true;
return out;
Expand All @@ -1642,13 +1647,18 @@ public String down(String hint) {
if (patternId < 0) {
patternId = -1;
} else {
boolean found = false;
for (int pid = patternId; pid >= 0; pid--) {
if (hint.length() == 0 || patterns.get(pid).startsWith(hint)) {
patternId = pid - 1;
out = patterns.get(pid);
found = true;
break;
}
}
if (!found) {
patternId = -1;
}
}
}
lastMoveUp = false;
Expand Down Expand Up @@ -3140,19 +3150,19 @@ protected void bindKeys() {
keys.bind(Operation.UNINDENT, alt('{'));
keys.bind(Operation.VERBATIM, alt('v'));
keys.bind(Operation.INSERT, ctrl('I'), ctrl('M'));
keys.bind(Operation.DELETE, ctrl('D'));
keys.bind(Operation.DELETE, ctrl('D'), key(terminal, Capability.key_dc));
keys.bind(Operation.BACKSPACE, ctrl('H'));
keys.bind(Operation.CUT_TO_END, alt('t'));
keys.bind(Operation.JUSTIFY_FILE, alt('j'));
keys.bind(Operation.AUTO_INDENT, alt('i'));
keys.bind(Operation.CUT_TO_END_TOGGLE, alt('k'));
keys.bind(Operation.TABS_TO_SPACE, alt('q'));
keys.bind(Operation.NEXT_PAGE, ctrl('V'), key(terminal, Capability.key_f8));
keys.bind(Operation.PREV_PAGE, ctrl('Y'), key(terminal, Capability.key_f7));
} else {
keys.bind(Operation.NEXT_PAGE, ctrl('V'), key(terminal, Capability.key_f8), " ", "f");
keys.bind(Operation.PREV_PAGE, ctrl('Y'), key(terminal, Capability.key_f7), "b");
keys.bind(Operation.NEXT_PAGE, " ", "f");
keys.bind(Operation.PREV_PAGE, "b");
}
keys.bind(Operation.NEXT_PAGE, ctrl('V'), key(terminal, Capability.key_f8));
keys.bind(Operation.PREV_PAGE, ctrl('Y'), key(terminal, Capability.key_f7));

keys.bind(Operation.HELP, ctrl('G'), key(terminal, Capability.key_f1));
keys.bind(Operation.QUIT, ctrl('X'), key(terminal, Capability.key_f2));
Expand Down Expand Up @@ -3206,13 +3216,14 @@ protected void bindKeys() {
keys.bind(Operation.BACKUP, alt('b'));
keys.bind(Operation.NUMBERS, alt('n'));

// TODO: map other keys
keys.bind(Operation.UP, key(terminal, Capability.key_up));
keys.bind(Operation.DOWN, key(terminal, Capability.key_down));
keys.bind(Operation.RIGHT, key(terminal, Capability.key_right));
keys.bind(Operation.LEFT, key(terminal, Capability.key_left));
keys.bind(Operation.MOUSE_EVENT, key(terminal, Capability.key_mouse));
keys.bind(Operation.TOGGLE_SUSPENSION, alt('z'));
keys.bind(Operation.NEXT_PAGE, key(terminal, Capability.key_npage));
keys.bind(Operation.PREV_PAGE, key(terminal, Capability.key_ppage));
}

protected enum Operation {
Expand Down

0 comments on commit d9ea992

Please sign in to comment.