本文整理了Java中org.jline.keymap.KeyMap
类的一些代码示例,展示了KeyMap
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。KeyMap
类的具体详情如下:
包路径:org.jline.keymap.KeyMap
类名称:KeyMap
[英]The KeyMap class contains all bindings from keys to operations.
[中]KeyMap类包含从键到操作的所有绑定。
代码示例来源:origin: apache/flink
@Override
protected KeyMap<RowOperation> getKeys() {
final KeyMap<RowOperation> keys = new KeyMap<>();
keys.setAmbiguousTimeout(200); // make ESC quicker
keys.bind(RowOperation.QUIT, "q", "Q", esc());
keys.bind(RowOperation.UP, "w", "W", key(client.getTerminal(), Capability.key_up));
keys.bind(RowOperation.DOWN, "s", "S", key(client.getTerminal(), Capability.key_down));
keys.bind(RowOperation.LEFT, "a", "A", key(client.getTerminal(), Capability.key_left));
keys.bind(RowOperation.RIGHT, "d", "D", key(client.getTerminal(), Capability.key_right));
return keys;
}
代码示例来源:origin: apache/flink
@Override
protected KeyMap<InputOperation> getKeys() {
final KeyMap<InputOperation> keys = new KeyMap<>();
keys.setUnicode(INSERT);
keys.setAmbiguousTimeout(200); // make ESC quicker
for (char i = 32; i < 256; i++) {
keys.bind(INSERT, Character.toString(i));
}
keys.bind(LEFT, key(client.getTerminal(), Capability.key_left));
keys.bind(RIGHT, key(client.getTerminal(), Capability.key_right));
keys.bind(BACKSPACE, del());
if (client.isPlainTerminal()) {
keys.bind(ENTER, "\r", "$");
keys.bind(QUIT, key(client.getTerminal(), Capability.key_exit), "!");
} else {
keys.bind(ENTER, "\r");
keys.bind(QUIT, esc());
}
return keys;
}
代码示例来源:origin: org.jline/jline-builtins
protected void bindKeys() {
keys = new KeyMap<>();
keys.setUnicode(Operation.INSERT);
keys.bind(Operation.INSERT, Character.toString(i));
keys.bind(Operation.BACKSPACE, del());
for (char i = 'A'; i <= 'Z'; i++) {
keys.bind(Operation.DO_LOWER_CASE, alt(i));
keys.bind(Operation.HELP, ctrl('G'), key(terminal, Capability.key_f1));
keys.bind(Operation.QUIT, ctrl('X'), key(terminal, Capability.key_f2));
keys.bind(Operation.WRITE, ctrl('O'), key(terminal, Capability.key_f3));
keys.bind(Operation.JUSTIFY_PARAGRAPH, ctrl('J'), key(terminal, Capability.key_f4));
keys.bind(Operation.READ, ctrl('R'), key(terminal, Capability.key_f5));
keys.bind(Operation.SEARCH, ctrl('W'), key(terminal, Capability.key_f6));
keys.bind(Operation.PREV_PAGE, ctrl('Y'), key(terminal, Capability.key_f7));
keys.bind(Operation.NEXT_PAGE, ctrl('V'), key(terminal, Capability.key_f8));
keys.bind(Operation.CUT, ctrl('K'), key(terminal, Capability.key_f9));
keys.bind(Operation.UNCUT, ctrl('U'), key(terminal, Capability.key_f10));
keys.bind(Operation.CUR_POS, ctrl('C'), key(terminal, Capability.key_f11));
keys.bind(Operation.TO_SPELL, ctrl('T'), key(terminal, Capability.key_f11));
keys.bind(Operation.GOTO, ctrl('_'), key(terminal, Capability.key_f13), alt('g'));
keys.bind(Operation.REPLACE, ctrl('\\'), key(terminal, Capability.key_f14), alt('r'));
keys.bind(Operation.MARK, ctrl('^'), key(terminal, Capability.key_f15), alt('a'));
keys.bind(Operation.NEXT_SEARCH, key(terminal, Capability.key_f16), alt('w'));
代码示例来源:origin: org.jline/jline
public KeyMap<Binding> emacs() {
KeyMap<Binding> emacs = new KeyMap<>();
bind(emacs, SET_MARK_COMMAND, ctrl('@'));
bind(emacs, BEGINNING_OF_LINE, ctrl('A'));
bind(emacs, BACKWARD_CHAR, ctrl('B'));
bind(emacs, DELETE_CHAR_OR_LIST, ctrl('D'));
bind(emacs, END_OF_LINE, ctrl('E'));
bind(emacs, FORWARD_CHAR, ctrl('F'));
bind(emacs, SEND_BREAK, ctrl('G'));
bind(emacs, BACKWARD_DELETE_CHAR, ctrl('H'));
bind(emacs, EXPAND_OR_COMPLETE, ctrl('I'));
bind(emacs, ACCEPT_LINE, ctrl('J'));
bind(emacs, KILL_LINE, ctrl('K'));
bind(emacs, CLEAR_SCREEN, ctrl('L'));
bind(emacs, ACCEPT_LINE, ctrl('M'));
bind(emacs, DOWN_LINE_OR_HISTORY, ctrl('N'));
bind(emacs, UP_LINE_OR_HISTORY, ctrl('P'));
bind(emacs, HISTORY_INCREMENTAL_SEARCH_BACKWARD, ctrl('R'));
bind(emacs, HISTORY_INCREMENTAL_SEARCH_FORWARD, ctrl('S'));
bind(emacs, TRANSPOSE_CHARS, ctrl('T'));
bind(emacs, KILL_WHOLE_LINE, ctrl('U'));
bind(emacs, QUOTED_INSERT, ctrl('V'));
bind(emacs, BACKWARD_KILL_WORD, ctrl('W'));
bind(emacs, YANK, ctrl('Y'));
bind(emacs, CHARACTER_SEARCH, ctrl(']'));
bind(emacs, UNDO, ctrl('_'));
bind(emacs, SELF_INSERT, range(" -~"));
bind(emacs, INSERT_CLOSE_PAREN, ")");
bind(emacs, INSERT_CLOSE_SQUARE, "]");
bind(emacs, INSERT_CLOSE_CURLY, "}");
代码示例来源:origin: org.jline/jline-builtins
KeyMap<Binding> map = new KeyMap<>();
if (org != null) {
for (Map.Entry<String, Binding> bound : org.getBoundKeys().entrySet()) {
map.bind(bound.getValue(), bound.getKey());
boolean prefix = opt.isSet("p");
Set<String> toRemove = new HashSet<>();
Map<String, Binding> bound = map.getBoundKeys();
for (String arg : opt.args()) {
if (range) {
Collection<String> r = KeyMap.range(opt.args().get(0));
if (r == null) {
err.println("keymap: malformed key range `" + opt.args().get(0) + "'");
String seq = KeyMap.translate(arg);
for (String k : bound.keySet()) {
if (prefix && k.startsWith(seq) && k.length() > seq.length()
map.unbind(seq);
? new Macro(KeyMap.translate(opt.args().get(i + 1)))
: new Reference(opt.args().get(i + 1));
if (range) {
Collection<String> r = KeyMap.range(opt.args().get(i));
if (r == null) {
err.println("keymap: malformed key range `" + opt.args().get(i) + "'");
return;
map.bind(bout, r);
代码示例来源:origin: org.jline/jline
protected KeyMap<Object> createEmptyKeyMap(String prefix) {
KeyMap<Object> keyMap = new KeyMap<>();
keyMap.setUnicode(Binding.SelfInsert);
keyMap.setNomatch(Binding.SelfInsert);
for (int i = 0; i < 255; i++) {
keyMap.bind(Binding.Discard, prefix + (char)(i));
}
keyMap.bind(Binding.Mouse, key(terminal, Capability.key_mouse));
return keyMap;
}
代码示例来源:origin: org.jline/jline-builtins
protected KeyMap<Object> createKeyMap(String prefix) {
KeyMap<Object> keyMap = createEmptyKeyMap(prefix);
keyMap.bind(CMD_SEND_PREFIX, prefix + prefix);
keyMap.bind(CMD_SPLIT_WINDOW + " -v", prefix + "\"");
keyMap.bind(CMD_SPLIT_WINDOW + " -h", prefix + "%");
keyMap.bind(CMD_SELECT_PANE + " -U", prefix + key(terminal, Capability.key_up));
keyMap.bind(CMD_SELECT_PANE + " -D", prefix + key(terminal, Capability.key_down));
keyMap.bind(CMD_SELECT_PANE + " -L", prefix + key(terminal, Capability.key_left));
keyMap.bind(CMD_SELECT_PANE + " -R", prefix + key(terminal, Capability.key_right));
keyMap.bind(CMD_RESIZE_PANE + " -U 5", prefix + esc() + key(terminal, Capability.key_up));
keyMap.bind(CMD_RESIZE_PANE + " -D 5", prefix + esc() + key(terminal, Capability.key_down));
keyMap.bind(CMD_RESIZE_PANE + " -L 5", prefix + esc() + key(terminal, Capability.key_left));
keyMap.bind(CMD_RESIZE_PANE + " -R 5", prefix + esc() + key(terminal, Capability.key_right));
keyMap.bind(CMD_RESIZE_PANE + " -U", prefix + translate("^[[1;5A"), prefix + alt(translate("^[[A"))); // ctrl-up
keyMap.bind(CMD_RESIZE_PANE + " -D", prefix + translate("^[[1;5B"), prefix + alt(translate("^[[B"))); // ctrl-down
keyMap.bind(CMD_RESIZE_PANE + " -L", prefix + translate("^[[1;5C"), prefix + alt(translate("^[[C"))); // ctrl-left
keyMap.bind(CMD_RESIZE_PANE + " -R", prefix + translate("^[[1;5D"), prefix + alt(translate("^[[D"))); // ctrl-right
keyMap.bind(CMD_DISPLAY_PANES, prefix + "q");
keyMap.bind(CMD_CLOCK_MODE, prefix + "t");
return keyMap;
}
代码示例来源:origin: apache/samza
private KeyMap<Action> bindActionKey() {
KeyMap<Action> keyMap = new KeyMap<>();
keyMap.bind(Action.QUIT, "Q", "q", ctrl('c'));
keyMap.bind(Action.SPACE, " ");
return keyMap;
}
代码示例来源:origin: org.jline/jline
private void bindKeys(KeyMap<Operation> map) {
map.bind(Operation.HELP, "h", "H");
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_AND_SET, "z");
map.bind(Operation.BACKWARD_ONE_WINDOW_AND_SET, "w");
map.bind(Operation.FORWARD_ONE_WINDOW_NO_STOP, alt(' '));
map.bind(Operation.FORWARD_HALF_WINDOW_AND_SET, "d", ctrl('D'));
map.bind(Operation.BACKWARD_HALF_WINDOW_AND_SET, "u", ctrl('U'));
map.bind(Operation.RIGHT_ONE_HALF_SCREEN, alt(')'), key(terminal, Capability.key_right));
map.bind(Operation.LEFT_ONE_HALF_SCREEN, alt('('), key(terminal, Capability.key_left));
map.bind(Operation.FORWARD_FOREVER, "F");
map.bind(Operation.REPEAT_SEARCH_FORWARD, "n", "N");
map.bind(Operation.REPEAT_SEARCH_FORWARD_SPAN_FILES, alt('n'), alt('N'));
map.bind(Operation.UNDO_SEARCH, alt('u'));
map.bind(Operation.GO_TO_FIRST_LINE_OR_N, "g", "<", alt('<'));
map.bind(Operation.GO_TO_LAST_LINE_OR_N, "G", ">", alt('>'));
map.bind(Operation.NEXT_FILE, ":n");
map.bind(Operation.PREV_FILE, ":p");
"-/0123456789?".chars().forEach(c -> map.bind(Operation.CHAR, Character.toString((char) c)));
}
代码示例来源:origin: org.jline/jline-builtins
protected void bindKey(PrintStream out, PrintStream err, List<String> args) throws IOException {
final String[] usage = {
"bind-key - ",
"Usage: bind-key key command [arguments]", /* [-cnr] [-t mode-table] [-T key-table] */
" -? --help Show help"
};
Options opt = Options.compile(usage).setOptionsFirst(true).parse(args);
if (opt.isSet("help")) {
opt.usage(err);
return;
}
List<String> vargs = opt.args();
if (vargs.size() < 2) {
opt.usage(err);
return;
}
String prefix = serverOptions.get(OPT_PREFIX);
String key = prefix + KeyMap.translate(vargs.remove(0));
keyMap.unbind(key.substring(0, 2));
keyMap.bind(vargs.toArray(new String[vargs.size()]), key);
}
代码示例来源:origin: org.jline/jline
public void bind(T function, Iterable<? extends CharSequence> keySeqs) {
for (CharSequence keySeq : keySeqs) {
bind(function, keySeq);
}
}
代码示例来源:origin: org.jline/jline
public boolean beginPaste() {
final Object SELF_INSERT = new Object();
final Object END_PASTE = new Object();
KeyMap<Object> keyMap = new KeyMap<>();
keyMap.setUnicode(SELF_INSERT);
keyMap.setNomatch(SELF_INSERT);
keyMap.setAmbiguousTimeout(0);
keyMap.bind(END_PASTE, BRACKETED_PASTE_END);
StringBuilder sb = new StringBuilder();
while (true) {
Object b = bindingReader.readBinding(keyMap);
if (b == END_PASTE) {
break;
}
String s = getLastBinding();
if ("\r".equals(s)) {
s = "\n";
}
sb.append(s);
}
regionActive = RegionType.PASTE;
regionMark = getBuffer().cursor();
getBuffer().write(sb);
return true;
}
代码示例来源:origin: org.jline/jline
public KeyMap<Binding> viInsertion() {
KeyMap<Binding> viins = new KeyMap<>();
bind(viins, SELF_INSERT, range("^@-^_"));
bind(viins, LIST_CHOICES, ctrl('D'));
bind(viins, SEND_BREAK, ctrl('G'));
bind(viins, BACKWARD_DELETE_CHAR, ctrl('H'));
bind(viins, EXPAND_OR_COMPLETE, ctrl('I'));
bind(viins, ACCEPT_LINE, ctrl('J'));
bind(viins, CLEAR_SCREEN, ctrl('L'));
bind(viins, ACCEPT_LINE, ctrl('M'));
bind(viins, MENU_COMPLETE, ctrl('N'));
bind(viins, REVERSE_MENU_COMPLETE, ctrl('P'));
bind(viins, HISTORY_INCREMENTAL_SEARCH_BACKWARD, ctrl('R'));
bind(viins, HISTORY_INCREMENTAL_SEARCH_FORWARD, ctrl('S'));
bind(viins, TRANSPOSE_CHARS, ctrl('T'));
bind(viins, KILL_WHOLE_LINE, ctrl('U'));
bind(viins, QUOTED_INSERT, ctrl('V'));
bind(viins, BACKWARD_KILL_WORD, ctrl('W'));
bind(viins, YANK, ctrl('Y'));
bind(viins, VI_CMD_MODE, ctrl('['));
bind(viins, UNDO, ctrl('_'));
bind(viins, HISTORY_INCREMENTAL_SEARCH_BACKWARD, ctrl('X') + "r");
bind(viins, HISTORY_INCREMENTAL_SEARCH_FORWARD, ctrl('X') + "s");
bind(viins, SELF_INSERT, range(" -~"));
bind(viins, INSERT_CLOSE_PAREN, ")");
bind(viins, INSERT_CLOSE_SQUARE, "]");
bind(viins, INSERT_CLOSE_CURLY, "}");
bind(viins, BACKWARD_DELETE_CHAR, del());
bindArrowKeys(viins);
return viins;
代码示例来源:origin: org.jline/jline
private void bindKeys(KeyMap<Operation> map) {
map.bind(Operation.HELP, "h", "?");
map.bind(Operation.EXIT, "q", ":q", "Q", ":Q", "ZZ");
map.bind(Operation.INCREASE_DELAY, "+");
map.bind(Operation.DECREASE_DELAY, "-");
map.bind(Operation.CLEAR, KeyMap.ctrl('L'));
map.bind(Operation.REVERSE, "r");
}
代码示例来源:origin: org.jline/jline-builtins
throw new IllegalArgumentException("Missing argument");
String prefix = translate(value);
String oldPrefix = serverOptions.put(OPT_PREFIX, prefix);
KeyMap<Object> newKeys = createEmptyKeyMap(prefix);
for (Map.Entry<String, Object> e : keyMap.getBoundKeys().entrySet()) {
if (e.getValue() instanceof String) {
if (e.getKey().equals(oldPrefix + oldPrefix)) {
newKeys.bind(e.getValue(), prefix + prefix);
} else if (e.getKey().startsWith(oldPrefix)) {
newKeys.bind(e.getValue(), prefix + e.getKey().substring(oldPrefix.length()));
} else {
newKeys.bind(e.getValue(), e.getKey());
代码示例来源:origin: org.jline/jline
@SuppressWarnings("unchecked")
private static <T> void bind(KeyMap<T> map, CharSequence keySeq, T function, boolean onlyIfNotBound) {
if (keySeq != null && keySeq.length() > 0) {
for (int i = 0; i < keySeq.length(); i++) {
char c = keySeq.charAt(i);
if (c >= map.mapping.length) {
return;
}
if (i < keySeq.length() - 1) {
if (!(map.mapping[c] instanceof KeyMap)) {
KeyMap<T> m = new KeyMap<>();
m.anotherKey = (T) map.mapping[c];
map.mapping[c] = m;
}
map = (KeyMap) map.mapping[c];
} else {
if (map.mapping[c] instanceof KeyMap) {
((KeyMap) map.mapping[c]).anotherKey = function;
} else {
Object op = map.mapping[c];
if (!onlyIfNotBound || op == null) {
map.mapping[c] = function;
}
}
}
}
}
}
代码示例来源:origin: org.jline/jline
public KeyMap<Binding> safe() {
KeyMap<Binding> safe = new KeyMap<>();
bind(safe, SELF_INSERT, range("^@-^?"));
bind(safe, ACCEPT_LINE, "\r", "\n");
bind(safe, SEND_BREAK, ctrl('G'));
return safe;
}
代码示例来源:origin: org.jline/jline
public KeyMap<Binding> viOpp() {
KeyMap<Binding> viOpp = new KeyMap<>();
bind(viOpp, UP_LINE, key(Capability.key_up), "k");
bind(viOpp, DOWN_LINE, key(Capability.key_down), "j");
bind(viOpp, VI_CMD_MODE, esc());
return viOpp;
}
代码示例来源:origin: org.jline/jline
public void bind(T function, CharSequence keySeq) {
if (keySeq != null) {
if (function == null) {
unbind(keySeq);
} else {
bind(this, keySeq, function, false);
}
}
}
代码示例来源:origin: org.jline/jline
/**
* Bind special chars defined by the terminal instead of
* the default bindings
*/
private void bindConsoleChars(KeyMap<Binding> keyMap, Attributes attr) {
if (attr != null) {
rebind(keyMap, BACKWARD_DELETE_CHAR,
del(), (char) attr.getControlChar(ControlChar.VERASE));
rebind(keyMap, BACKWARD_KILL_WORD,
ctrl('W'), (char) attr.getControlChar(ControlChar.VWERASE));
rebind(keyMap, KILL_WHOLE_LINE,
ctrl('U'), (char) attr.getControlChar(ControlChar.VKILL));
rebind(keyMap, QUOTED_INSERT,
ctrl('V'), (char) attr.getControlChar(ControlChar.VLNEXT));
}
}
内容来源于网络,如有侵权,请联系作者删除!