2026-04-07 04:47:58 +08:00
|
|
|
package tui
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"charm.land/bubbles/v2/key"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type KeyMap struct {
|
|
|
|
|
Quit key.Binding
|
|
|
|
|
Clear key.Binding
|
|
|
|
|
SwitchLang key.Binding
|
|
|
|
|
ScrollUp key.Binding
|
|
|
|
|
ScrollDown key.Binding
|
|
|
|
|
ScrollTop key.Binding
|
|
|
|
|
ScrollBottom key.Binding
|
2026-04-08 02:08:34 +08:00
|
|
|
Help key.Binding
|
2026-04-07 04:47:58 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewKeyMap() KeyMap {
|
|
|
|
|
return KeyMap{
|
|
|
|
|
Quit: key.NewBinding(
|
|
|
|
|
key.WithKeys("ctrl+c", "esc"),
|
|
|
|
|
key.WithHelp("Ctrl+C", "退出"),
|
|
|
|
|
),
|
|
|
|
|
Clear: key.NewBinding(
|
|
|
|
|
key.WithKeys("ctrl+l"),
|
|
|
|
|
key.WithHelp("Ctrl+L", "清空输入"),
|
|
|
|
|
),
|
|
|
|
|
SwitchLang: key.NewBinding(
|
|
|
|
|
key.WithKeys("ctrl+t"),
|
|
|
|
|
key.WithHelp("Ctrl+T", "切换语言"),
|
|
|
|
|
),
|
|
|
|
|
ScrollUp: key.NewBinding(
|
|
|
|
|
key.WithKeys("up", "ctrl+up"),
|
|
|
|
|
key.WithHelp("↑/Ctrl+↑", "上滚"),
|
|
|
|
|
),
|
|
|
|
|
ScrollDown: key.NewBinding(
|
|
|
|
|
key.WithKeys("down", "ctrl+down"),
|
|
|
|
|
key.WithHelp("↓/Ctrl+↓", "下滚"),
|
|
|
|
|
),
|
|
|
|
|
ScrollTop: key.NewBinding(
|
|
|
|
|
key.WithKeys("home"),
|
|
|
|
|
key.WithHelp("Home", "顶部"),
|
|
|
|
|
),
|
|
|
|
|
ScrollBottom: key.NewBinding(
|
|
|
|
|
key.WithKeys("end"),
|
|
|
|
|
key.WithHelp("End", "底部"),
|
|
|
|
|
),
|
2026-04-08 02:08:34 +08:00
|
|
|
Help: key.NewBinding(
|
|
|
|
|
key.WithKeys("ctrl+h"),
|
|
|
|
|
key.WithHelp("Ctrl+H", "帮助"),
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (k KeyMap) ShortHelp() []key.Binding {
|
|
|
|
|
return []key.Binding{k.Help, k.Quit}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (k KeyMap) FullHelp() [][]key.Binding {
|
|
|
|
|
return [][]key.Binding{
|
|
|
|
|
{k.Quit, k.Clear, k.SwitchLang},
|
|
|
|
|
{k.ScrollUp, k.ScrollDown, k.ScrollTop, k.ScrollBottom},
|
|
|
|
|
{k.Help},
|
2026-04-07 04:47:58 +08:00
|
|
|
}
|
|
|
|
|
}
|