Files
voidraft/internal/models/key_binding.go

900 lines
27 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package models
// KeyBindingName 快捷键命令标识符
type KeyBindingName string
type KeyBindingType string
const (
Standard KeyBindingType = "standard" // standard 标准快捷键
Emacs KeyBindingType = "emacs" // emacs 快捷键
)
// KeyBinding 单个快捷键绑定
type KeyBinding struct {
Name KeyBindingName `json:"name"` // 命令唯一标识符
Type KeyBindingType `json:"type"` // 快捷键类型standard 或 "emacs"
Key string `json:"key,omitempty"` // 通用快捷键(跨平台)
Macos string `json:"macos,omitempty"` // macOS 专用快捷键
Windows string `json:"win,omitempty"` // windows 专用快捷键
Linux string `json:"linux,omitempty"` // Linux 专用快捷键
Extension ExtensionName `json:"extension"` // 所属扩展
Enabled bool `json:"enabled"` // 是否启用
PreventDefault bool `json:"preventDefault"` // 阻止浏览器默认行为
Scope string `json:"scope,omitempty"` // 作用域(默认 "editor"
}
const (
ShowSearch KeyBindingName = "showSearch" // 显示搜索
HideSearch KeyBindingName = "hideSearch" // 隐藏搜索
BlockSelectAll KeyBindingName = "blockSelectAll" // 块内选择全部
BlockAddAfterCurrent KeyBindingName = "blockAddAfterCurrent" // 在当前块后添加新块
BlockAddAfterLast KeyBindingName = "blockAddAfterLast" // 在最后添加新块
BlockAddBeforeCurrent KeyBindingName = "blockAddBeforeCurrent" // 在当前块前添加新块
BlockGotoPrevious KeyBindingName = "blockGotoPrevious" // 跳转到上一个块
BlockGotoNext KeyBindingName = "blockGotoNext" // 跳转到下一个块
BlockSelectPrevious KeyBindingName = "blockSelectPrevious" // 选择上一个块
BlockSelectNext KeyBindingName = "blockSelectNext" // 选择下一个块
BlockDelete KeyBindingName = "blockDelete" // 删除当前块
BlockMoveUp KeyBindingName = "blockMoveUp" // 向上移动当前块
BlockMoveDown KeyBindingName = "blockMoveDown" // 向下移动当前块
BlockDeleteLine KeyBindingName = "blockDeleteLine" // 删除行
BlockMoveLineUp KeyBindingName = "blockMoveLineUp" // 向上移动行
BlockMoveLineDown KeyBindingName = "blockMoveLineDown" // 向下移动行
BlockTransposeChars KeyBindingName = "blockTransposeChars" // 字符转置
BlockFormat KeyBindingName = "blockFormat" // 格式化代码块
BlockCopy KeyBindingName = "blockCopy" // 复制
BlockCut KeyBindingName = "blockCut" // 剪切
BlockPaste KeyBindingName = "blockPaste" // 粘贴
FoldCode KeyBindingName = "foldCode" // 折叠代码
UnfoldCode KeyBindingName = "unfoldCode" // 展开代码
FoldAll KeyBindingName = "foldAll" // 折叠全部
UnfoldAll KeyBindingName = "unfoldAll" // 展开全部
CursorSyntaxLeft KeyBindingName = "cursorSyntaxLeft" // 光标按语法左移
CursorSyntaxRight KeyBindingName = "cursorSyntaxRight" // 光标按语法右移
SelectSyntaxLeft KeyBindingName = "selectSyntaxLeft" // 按语法选择左侧
SelectSyntaxRight KeyBindingName = "selectSyntaxRight" // 按语法选择右侧
CopyLineUp KeyBindingName = "copyLineUp" // 向上复制行
CopyLineDown KeyBindingName = "copyLineDown" // 向下复制行
InsertBlankLine KeyBindingName = "insertBlankLine" // 插入空行
SelectLine KeyBindingName = "selectLine" // 选择行
SelectParentSyntax KeyBindingName = "selectParentSyntax" // 选择父级语法
SimplifySelection KeyBindingName = "simplifySelection" // 简化选择
AddCursorAbove KeyBindingName = "addCursorAbove" // 在上方添加光标
AddCursorBelow KeyBindingName = "addCursorBelow" // 在下方添加光标
CursorGroupLeft KeyBindingName = "cursorGroupLeft" // 光标按单词左移
CursorGroupRight KeyBindingName = "cursorGroupRight" // 光标按单词右移
SelectGroupLeft KeyBindingName = "selectGroupLeft" // 按单词选择左侧
SelectGroupRight KeyBindingName = "selectGroupRight" // 按单词选择右侧
DeleteToLineEnd KeyBindingName = "deleteToLineEnd" // 删除到行尾
DeleteToLineStart KeyBindingName = "deleteToLineStart" // 删除到行首
CursorLineStart KeyBindingName = "cursorLineStart" // 移动到行首
CursorLineEnd KeyBindingName = "cursorLineEnd" // 移动到行尾
SelectLineStart KeyBindingName = "selectLineStart" // 选择到行首
SelectLineEnd KeyBindingName = "selectLineEnd" // 选择到行尾
CursorDocStart KeyBindingName = "cursorDocStart" // 跳转到文档开头
CursorDocEnd KeyBindingName = "cursorDocEnd" // 跳转到文档结尾
SelectDocStart KeyBindingName = "selectDocStart" // 选择到文档开头
SelectDocEnd KeyBindingName = "selectDocEnd" // 选择到文档结尾
SelectMatchingBracket KeyBindingName = "selectMatchingBracket" // 选择到匹配括号
SplitLine KeyBindingName = "splitLine" // 分割行
CursorCharLeft KeyBindingName = "cursorCharLeft" // 光标左移一个字符
CursorCharRight KeyBindingName = "cursorCharRight" // 光标右移一个字符
CursorLineUp KeyBindingName = "cursorLineUp" // 光标上移一行
CursorLineDown KeyBindingName = "cursorLineDown" // 光标下移一行
CursorPageUp KeyBindingName = "cursorPageUp" // 向上翻页
CursorPageDown KeyBindingName = "cursorPageDown" // 向下翻页
SelectCharLeft KeyBindingName = "selectCharLeft" // 选择左移一个字符
SelectCharRight KeyBindingName = "selectCharRight" // 选择右移一个字符
SelectLineUp KeyBindingName = "selectLineUp" // 选择上移一行
SelectLineDown KeyBindingName = "selectLineDown" // 选择下移一行
IndentLess KeyBindingName = "indentLess" // 减少缩进
IndentMore KeyBindingName = "indentMore" // 增加缩进
IndentSelection KeyBindingName = "indentSelection" // 缩进选择
CursorMatchingBracket KeyBindingName = "cursorMatchingBracket" // 光标到匹配括号
ToggleComment KeyBindingName = "toggleComment" // 切换注释
ToggleBlockComment KeyBindingName = "toggleBlockComment" // 切换块注释
InsertNewlineAndIndent KeyBindingName = "insertNewlineAndIndent" // 插入新行并缩进
DeleteCharBackward KeyBindingName = "deleteCharBackward" // 向后删除字符
DeleteCharForward KeyBindingName = "deleteCharForward" // 向前删除字符
DeleteGroupBackward KeyBindingName = "deleteGroupBackward" // 向后删除组
DeleteGroupForward KeyBindingName = "deleteGroupForward" // 向前删除组
HistoryUndo KeyBindingName = "historyUndo" // 撤销
HistoryRedo KeyBindingName = "historyRedo" // 重做
HistoryUndoSelection KeyBindingName = "historyUndoSelection" // 撤销选择
HistoryRedoSelection KeyBindingName = "historyRedoSelection" // 重做选择
CopyBlockImage KeyBindingName = "copyBlockImage" // 复制块为图片
)
const DefaultExtension = "editor"
// NewDefaultKeyBindings 创建默认快捷键配置
func NewDefaultKeyBindings() []KeyBinding {
// 标准模式快捷键
standardBindings := []KeyBinding{
// 搜索相关
{
Name: ShowSearch,
Type: Standard,
Key: "Mod-f",
Extension: Search,
Enabled: true,
PreventDefault: true,
},
{
Name: HideSearch,
Type: Standard,
Key: "Escape",
Extension: Search,
Enabled: true,
PreventDefault: false,
},
// 块操作相关
{
Name: BlockSelectAll,
Type: Standard,
Key: "Mod-a",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockAddAfterCurrent,
Type: Standard,
Key: "Mod-Enter",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockAddAfterLast,
Type: Standard,
Key: "Mod-Shift-Enter",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockAddBeforeCurrent,
Type: Standard,
Key: "Alt-Enter",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockGotoPrevious,
Type: Standard,
Key: "Mod-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockGotoNext,
Type: Standard,
Key: "Mod-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockSelectPrevious,
Type: Standard,
Key: "Mod-Shift-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockSelectNext,
Type: Standard,
Key: "Mod-Shift-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockDelete,
Type: Standard,
Key: "Mod-Shift-d",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockMoveUp,
Type: Standard,
Key: "Shift-Mod-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockMoveDown,
Type: Standard,
Key: "Shift-Mod-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockDeleteLine,
Type: Standard,
Key: "Mod-Shift-k",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockMoveLineUp,
Type: Standard,
Key: "Alt-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockMoveLineDown,
Type: Standard,
Key: "Alt-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockTransposeChars,
Type: Standard,
Key: "Mod-t",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockFormat,
Type: Standard,
Key: "Mod-Shift-f",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockCopy,
Type: Standard,
Key: "Mod-c",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockCut,
Type: Standard,
Key: "Mod-x",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockPaste,
Type: Standard,
Key: "Mod-v",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CopyBlockImage,
Type: Standard,
Key: "Mod-Shift-Alt-C",
Extension: BlockImage,
Enabled: true,
PreventDefault: true,
},
// 代码折叠相关
{
Name: FoldCode,
Type: Standard,
Macos: "Cmd-Alt-[",
Windows: "Ctrl-Shift-[",
Linux: "Ctrl-Shift-[",
Extension: Fold,
Enabled: true,
PreventDefault: true,
},
{
Name: UnfoldCode,
Type: Standard,
Macos: "Cmd-Alt-]",
Windows: "Ctrl-Shift-]",
Linux: "Ctrl-Shift-]",
Extension: Fold,
Enabled: true,
PreventDefault: true,
},
{
Name: FoldAll,
Type: Standard,
Key: "Ctrl-Alt-[",
Extension: Fold,
Enabled: true,
PreventDefault: true,
},
{
Name: UnfoldAll,
Type: Standard,
Key: "Ctrl-Alt-]",
Extension: Fold,
Enabled: true,
PreventDefault: true,
},
// 历史记录相关
{
Name: HistoryUndo,
Type: Standard,
Key: "Mod-z",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: HistoryRedo,
Type: Standard,
Key: "Mod-Shift-z",
Windows: "Ctrl-y",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: HistoryUndoSelection,
Type: Standard,
Key: "Mod-u",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: HistoryRedoSelection,
Type: Standard,
Key: "Mod-Shift-u",
Windows: "Alt-u",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// 光标和选择相关
{
Name: CursorSyntaxLeft,
Type: Standard,
Macos: "Ctrl-ArrowLeft",
Windows: "Alt-ArrowLeft",
Linux: "Alt-ArrowLeft",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorSyntaxRight,
Type: Standard,
Macos: "Ctrl-ArrowRight",
Windows: "Alt-ArrowRight",
Linux: "Alt-ArrowRight",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectSyntaxLeft,
Type: Standard,
Key: "Shift-Alt-ArrowLeft",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectSyntaxRight,
Type: Standard,
Key: "Shift-Alt-ArrowRight",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CopyLineUp,
Type: Standard,
Key: "Shift-Alt-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CopyLineDown,
Type: Standard,
Key: "Shift-Alt-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: InsertBlankLine,
Type: Standard,
Key: "Mod-Enter",
Extension: DefaultExtension,
Enabled: false,
PreventDefault: false,
},
{
Name: SelectLine,
Type: Standard,
Macos: "Ctrl-l",
Windows: "Alt-l",
Linux: "Alt-l",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectParentSyntax,
Type: Standard,
Key: "Mod-i",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SimplifySelection,
Type: Standard,
Key: "Escape",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: AddCursorAbove,
Type: Standard,
Macos: "Cmd-Alt-ArrowUp",
Windows: "Ctrl-Alt-ArrowUp",
Linux: "Ctrl-Alt-ArrowUp",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: AddCursorBelow,
Type: Standard,
Macos: "Cmd-Alt-ArrowDown",
Windows: "Ctrl-Alt-ArrowDown",
Linux: "Ctrl-Alt-ArrowDown",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorGroupLeft,
Type: Standard,
Windows: "Ctrl-ArrowLeft",
Linux: "Ctrl-ArrowLeft",
Macos: "Alt-ArrowLeft",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorGroupRight,
Type: Standard,
Windows: "Ctrl-ArrowRight",
Linux: "Ctrl-ArrowRight",
Macos: "Alt-ArrowRight",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectGroupLeft,
Type: Standard,
Windows: "Ctrl-Shift-ArrowLeft",
Linux: "Ctrl-Shift-ArrowLeft",
Macos: "Alt-Shift-ArrowLeft",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectGroupRight,
Type: Standard,
Windows: "Ctrl-Shift-ArrowRight",
Linux: "Ctrl-Shift-ArrowRight",
Macos: "Alt-Shift-ArrowRight",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteToLineEnd,
Type: Standard,
Macos: "Ctrl-k",
Windows: "Ctrl-k",
Linux: "Ctrl-k",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteToLineStart,
Type: Standard,
Key: "Mod-Shift-Backspace",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorLineStart,
Type: Standard,
Key: "Home",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: CursorLineEnd,
Type: Standard,
Key: "End",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: SelectLineStart,
Type: Standard,
Key: "Shift-Home",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: SelectLineEnd,
Type: Standard,
Key: "Shift-End",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: CursorDocStart,
Type: Standard,
Key: "Mod-Home",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorDocEnd,
Type: Standard,
Key: "Mod-End",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectDocStart,
Type: Standard,
Key: "Mod-Shift-Home",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectDocEnd,
Type: Standard,
Key: "Mod-Shift-End",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectMatchingBracket,
Type: Standard,
Key: "Mod-Shift-p",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SplitLine,
Type: Standard,
Macos: "Ctrl-o",
Windows: "Ctrl-o",
Linux: "Ctrl-o",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// 缩进和格式化相关
{
Name: IndentLess,
Type: Standard,
Key: "Mod-[",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: IndentMore,
Type: Standard,
Key: "Mod-]",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: IndentSelection,
Type: Standard,
Key: "Mod-Alt-\\",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorMatchingBracket,
Type: Standard,
Key: "Shift-Mod-\\",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: ToggleComment,
Type: Standard,
Key: "Mod-/",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: ToggleBlockComment,
Type: Standard,
Key: "Shift-Alt-a",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// 基础编辑相关
{
Name: InsertNewlineAndIndent,
Type: Standard,
Key: "Enter",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: DeleteCharBackward,
Type: Standard,
Key: "Backspace",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: DeleteCharForward,
Type: Standard,
Key: "Delete",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: false,
},
{
Name: DeleteGroupBackward,
Type: Standard,
Key: "Mod-Backspace",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteGroupForward,
Type: Standard,
Key: "Mod-Delete",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
}
// Emacs 模式特有快捷键(只包含与 standard 不同的)
emacsBindings := []KeyBinding{
// Emacs 核心导航 - 字符移动
{
Name: CursorCharLeft,
Type: Emacs,
Key: "Ctrl-b",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectCharLeft,
Type: Emacs,
Key: "Shift-Ctrl-b",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorCharRight,
Type: Emacs,
Key: "Ctrl-f",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectCharRight,
Type: Emacs,
Key: "Shift-Ctrl-f",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// Emacs 行移动
{
Name: CursorLineUp,
Type: Emacs,
Key: "Ctrl-p",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectLineUp,
Type: Emacs,
Key: "Shift-Ctrl-p",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorLineDown,
Type: Emacs,
Key: "Ctrl-n",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectLineDown,
Type: Emacs,
Key: "Shift-Ctrl-n",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// Emacs 行首/尾(与 standard 的 Home/End 不同)
{
Name: CursorLineStart,
Type: Emacs,
Key: "Ctrl-a",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectLineStart,
Type: Emacs,
Key: "Shift-Ctrl-a",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorLineEnd,
Type: Emacs,
Key: "Ctrl-e",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SelectLineEnd,
Type: Emacs,
Key: "Shift-Ctrl-e",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// Emacs 翻页(与 standard 不同)
{
Name: CursorPageDown,
Type: Emacs,
Key: "Ctrl-v",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: CursorPageUp,
Type: Emacs,
Key: "Alt-v",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// Emacs 编辑命令(与 standard 不同)
{
Name: DeleteCharForward,
Type: Emacs,
Key: "Ctrl-d",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteCharBackward,
Type: Emacs,
Key: "Ctrl-h",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteToLineEnd,
Type: Emacs,
Key: "Ctrl-k",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: DeleteGroupBackward,
Type: Emacs,
Key: "Ctrl-Alt-h",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: SplitLine,
Type: Emacs,
Key: "Ctrl-o",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockTransposeChars,
Type: Emacs,
Key: "Ctrl-t",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
// Emacs 模式下冲突快捷键的调整
{
Name: BlockSelectAll,
Type: Emacs,
Key: "Mod-Shift-a",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
{
Name: BlockPaste,
Type: Emacs,
Key: "Mod-Shift-v",
Extension: DefaultExtension,
Enabled: true,
PreventDefault: true,
},
}
return append(standardBindings, emacsBindings...)
}