This is my attempt to configure some personal bindings:
# Set Ctrl-L to clear terminal
le:binding[insert][Ctrl-L]={ clear > /dev/tty }
# Set Ctrl-N to start location
le:binding[insert][Ctrl-N]={ le:start-location }
# Set Alt-L to start navigation
le:binding[insert][Alt-l]={ le:start-nav }
# Below doesn't work
le:binding[navigation][Ctrl-J]={ le:nav-down }
le:binding[navigation][Ctrl-K]={ le:nav-up }
To bind Alt-L I had to use lowercase L.
Elvish installed with homebrew: elvish: stable 0.4 (bottled), HEAD
Binding for Ctrl-J should work now (fixed by 7bdca026952e80bee6de98412d318c134e545421). But beware that Ctrl-J is actually equivalent to Enter, so this will change the behavior of Enter as well. In fact, elvish now normalizes Ctrl-J to Enter before modifying the binding table.
Alt-l is actually logical. On most terminals, Alt sends an Esc before the key it modifies. So pressing Alt and L sends Esc l and pressing Alt, Shift and L sends Esc L. This is also in line with tmux, where such keys are known as M-l and M-L. By the way, elvish also supports M or Meta as synonyms to Alt.
Hum... I decided to use ctrl-j and ctrl-k because that's what my vim navigation plugins uses, I guess there is no way to use this then.
Is the Enter mapped to lowercase j or upcase J ?
@bpinto Letters modified by Ctrl are case-insensitive; Ctrl-K and Ctrl-Shift-K are equivalent.
This oddity is now documented in README. I suppose that resolves the issue.
Thanks!