Skip to content

键盘快捷键

vue-clip-track 内置了丰富的键盘快捷键支持,提升编辑效率。

快捷键列表

快捷键Mac功能
Ctrl+CCmd+C复制选中的片段
Ctrl+XCmd+X剪切选中的片段
Ctrl+VCmd+V粘贴片段
Delete / BackspaceDelete / Backspace删除选中的片段
Ctrl+ZCmd+Z撤销
Ctrl+Shift+Z / Ctrl+YCmd+Shift+Z重做
SpaceSpace播放/暂停
Ctrl+ACmd+A全选
EscapeEscape取消选择

使用 useKeyboard Composable

如果需要自定义快捷键行为,可以使用导出的 useKeyboard composable:

typescript
import { useKeyboard } from 'vue-clip-track'

// 在组件中使用
const { 
  handleCopy,
  handleCut,
  handlePaste,
  handleDelete,
  handleUndo,
  handleRedo,
  handleSelectAll
} = useKeyboard()

自定义快捷键

你可以通过监听组件事件来实现自定义快捷键:

vue
<template>
  <div @keydown="handleKeyDown">
    <VideoTrack ref="videoTrackRef" />
  </div>
</template>

<script setup>
import { ref } from 'vue'

const videoTrackRef = ref()

function handleKeyDown(e: KeyboardEvent) {
  // 自定义快捷键:Ctrl+S 保存
  if (e.ctrlKey && e.key === 's') {
    e.preventDefault()
    const data = videoTrackRef.value.exportData()
    // 保存数据...
  }
  
  // 自定义快捷键:Ctrl+D 复制片段
  if (e.ctrlKey && e.key === 'd') {
    e.preventDefault()
    // 自定义复制逻辑...
  }
}
</script>

禁用默认快捷键

如果需要禁用某些默认快捷键,可以在事件处理中阻止默认行为:

vue
<template>
  <VideoTrack 
    @clip-copy="handleCopy"
    @clip-delete="handleDelete"
  />
</template>

<script setup>
function handleCopy(clipIds: string[]) {
  // 自定义复制逻辑
  // 返回 false 可以阻止默认行为
}

function handleDelete(clipId: string) {
  // 添加确认对话框
  if (confirm('确定要删除吗?')) {
    // 执行删除
  }
}
</script>

Released under the MIT License.