Skip to content

Commit

Permalink
Separate normal unix bindings from Mac OS bindings
Browse files Browse the repository at this point in the history
The Delete behavior is the only change currently.

Signed-off-by: Charles Oliver Nutter <headius@headius.com>
  • Loading branch information
rosenfeld authored and headius committed Apr 5, 2011
1 parent fb81820 commit 3582abc
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/main/java/jline/Terminal.java
Expand Up @@ -175,6 +175,10 @@ public void afterReadLine(ConsoleReader reader, String prompt,
public abstract void disableEcho();

public InputStream getDefaultBindings() {
return Terminal.class.getResourceAsStream("keybindings.properties");
// Mac bindings are slightly different from Unix/Linux.
// For instance, the Delete key behavior is different between them.
return Terminal.class.getResourceAsStream(
System.getProperty("os.name").toLowerCase().startsWith("mac") ?
"keybindings-mac.properties" : "keybindings.properties");
}
}
62 changes: 62 additions & 0 deletions src/main/resources/jline/keybindings-mac.properties
@@ -0,0 +1,62 @@
# Keybinding mapping for JLine. The format is:
# [key code]: [logical operation]

# CTRL-B: move to the previous character
2: PREV_CHAR

# CTRL-G: move to the previous word
7: PREV_WORD

# CTRL-F: move to the next character
6: NEXT_CHAR

# CTRL-A: move to the beginning of the line
1: MOVE_TO_BEG

# CTRL-D: close out the input stream
4: EXIT

# CTRL-E: move the cursor to the end of the line
5: MOVE_TO_END

# BACKSPACE, CTRL-H: delete the previous character
# 8 is the ASCII code for backspace and therefor
# deleting the previous character
8: DELETE_PREV_CHAR

# TAB, CTRL-I: signal that console completion should be attempted
9: COMPLETE

# CTRL-J, CTRL-M: newline
10: NEWLINE

# CTRL-K: erase the current line
11: KILL_LINE

# ENTER: newline
13: NEWLINE

# CTRL-L: clear screen
12: CLEAR_SCREEN

# CTRL-N: scroll to the next element in the history buffer
14: NEXT_HISTORY

# CTRL-P: scroll to the previous element in the history buffer
16: PREV_HISTORY

# CTRL-R: redraw the current line
18: REDISPLAY

# CTRL-U: delete all the characters before the cursor position
21: KILL_LINE_PREV

# CTRL-V: paste the contents of the clipboard (useful for Windows terminal)
22: PASTE

# CTRL-W: delete the word directly before the cursor
23: DELETE_PREV_WORD

# DELETE, CTRL-?: delete the previous character
# 127 is the ASCII code for delete
127: DELETE_PREV_CHAR

0 comments on commit 3582abc

Please sign in to comment.