return
}
- config.Bindings[event.Name()] = v
-
bind(event, v)
// switch e := event.(type) {
defaults := DefaultBindings("buffer")
if a, ok := defaults[k]; ok {
BindKey(k, a, Binder["buffer"])
- } else if _, ok := config.Bindings[k]; ok {
+ } else if _, ok := config.Bindings["buffer"][k]; ok {
BufUnmap(key)
- delete(config.Bindings, k)
+ delete(config.Bindings["buffer"], k)
}
txt, _ := json.MarshalIndent(parsed, "", " ")
// BufMapKey maps an event to an action
func BufMapEvent(k Event, action string) {
+ config.Bindings["buffer"][k.Name()] = action
+
switch e := k.(type) {
case KeyEvent, KeySequenceEvent, RawEvent:
bufMapKey(e, action)
InfoBar.Error(err)
return
}
- if action, ok := config.Bindings[event.Name()]; ok {
+ if action, ok := config.Bindings["buffer"][event.Name()]; ok {
InfoBar.Message(action)
} else {
InfoBar.Message(args[0], " has no binding")
"bytes"
"github.com/zyedidia/micro/v2/internal/buffer"
+ "github.com/zyedidia/micro/v2/internal/config"
"github.com/zyedidia/micro/v2/internal/display"
"github.com/zyedidia/micro/v2/internal/info"
"github.com/zyedidia/micro/v2/internal/util"
}
func InfoMapEvent(k Event, action string) {
+ config.Bindings["command"][k.Name()] = action
+
switch e := k.(type) {
case KeyEvent, KeySequenceEvent, RawEvent:
infoMapKey(e, action)
"runtime"
"github.com/zyedidia/micro/v2/internal/clipboard"
+ "github.com/zyedidia/micro/v2/internal/config"
"github.com/zyedidia/micro/v2/internal/display"
"github.com/zyedidia/micro/v2/internal/screen"
"github.com/zyedidia/micro/v2/internal/shell"
}
func TermMapEvent(k Event, action string) {
+ config.Bindings["terminal"][k.Name()] = action
+
switch e := k.(type) {
case KeyEvent, KeySequenceEvent, RawEvent:
termMapKey(e, action)
DoubleClickThreshold = 400 // How many milliseconds to wait before a second click is not a double click
)
-var Bindings map[string]string
+var Bindings map[string]map[string]string
func init() {
- Bindings = make(map[string]string)
+ Bindings = map[string]map[string]string{
+ "command": make(map[string]string),
+ "buffer": make(map[string]string),
+ "terminal": make(map[string]string),
+ }
}
return []byte(fmt.Sprint(s.FindOpt(string(option))))
} else if bytes.HasPrefix(name, []byte("bind")) {
binding := string(name[5:])
- for k, v := range config.Bindings {
+ for k, v := range config.Bindings["buffer"] {
if v == binding {
return []byte(k)
}