summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-05-13 00:36:13 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-05-13 00:43:50 +0900
commitdd4be1da380724cdb91daccab8978ed50d7ae6ab (patch)
treeb8f5b341213fef2339ae1be3852fa541310d3ed1
parent66f86e18700f08daa20404d212021da412800d53 (diff)
Allow alt-enter and alt-space for --bind (#571)
-rw-r--r--src/curses/curses.go6
-rw-r--r--src/options.go4
-rw-r--r--src/options_test.go8
3 files changed, 15 insertions, 3 deletions
diff --git a/src/curses/curses.go b/src/curses/curses.go
index ebe64159..0ad382bd 100644
--- a/src/curses/curses.go
+++ b/src/curses/curses.go
@@ -81,6 +81,8 @@ const (
F3
F4
+ AltEnter
+ AltSpace
AltBS
AltA
AltB
@@ -417,6 +419,10 @@ func escSequence(sz *int) Event {
}
*sz = 2
switch _buf[1] {
+ case 13:
+ return Event{AltEnter, 0, nil}
+ case 32:
+ return Event{AltSpace, 0, nil}
case 98:
return Event{AltB, 0, nil}
case 100:
diff --git a/src/options.go b/src/options.go
index ab633082..4d5ac2d8 100644
--- a/src/options.go
+++ b/src/options.go
@@ -315,6 +315,10 @@ func parseKeyChords(str string, message string) map[int]string {
chord = curses.AltZ + int(' ')
case "bspace", "bs":
chord = curses.BSpace
+ case "alt-enter", "alt-return":
+ chord = curses.AltEnter
+ case "alt-space":
+ chord = curses.AltSpace
case "alt-bs", "alt-bspace":
chord = curses.AltBS
case "tab":
diff --git a/src/options_test.go b/src/options_test.go
index 81845d29..f3e62f8e 100644
--- a/src/options_test.go
+++ b/src/options_test.go
@@ -123,14 +123,14 @@ func TestIrrelevantNth(t *testing.T) {
}
func TestParseKeys(t *testing.T) {
- pairs := parseKeyChords("ctrl-z,alt-z,f2,@,Alt-a,!,ctrl-G,J,g", "")
+ pairs := parseKeyChords("ctrl-z,alt-z,f2,@,Alt-a,!,ctrl-G,J,g,ALT-enter,alt-SPACE", "")
check := func(i int, s string) {
if pairs[i] != s {
t.Errorf("%s != %s", pairs[i], s)
}
}
- if len(pairs) != 9 {
- t.Error(9)
+ if len(pairs) != 11 {
+ t.Error(11)
}
check(curses.CtrlZ, "ctrl-z")
check(curses.AltZ, "alt-z")
@@ -141,6 +141,8 @@ func TestParseKeys(t *testing.T) {
check(curses.CtrlA+'g'-'a', "ctrl-G")
check(curses.AltZ+'J', "J")
check(curses.AltZ+'g', "g")
+ check(curses.AltEnter, "ALT-enter")
+ check(curses.AltSpace, "alt-SPACE")
// Synonyms
pairs = parseKeyChords("enter,Return,space,tab,btab,esc,up,down,left,right", "")