一个让 VSCode 中 PageUp 和 PageDown 键滚动更加平滑顺畅的扩展插件。
- 🎯 平滑滚动动画 - 将原本的瞬间跳转变为流畅的滚动动画
- ⌨️ 光标同步移动 - 光标跟随视图平滑移动,保持视觉一致性
- ⚙️ 高度可定制 - 支持自定义滚动步数和持续时间
- 🚀 轻量高效 - 不影响编辑器性能,响应迅速
- 🎨 无缝集成 - 自动拦截默认的 PageUp/PageDown 行为,无需手动配置
- 打开 VS Code
- 按
Ctrl+Shift+X(Windows/Linux) 或Cmd+Shift+X(Mac) 打开扩展面板 - 搜索 "Smooth Key"
- 点击安装
- 下载
.vsix文件 - 在 VS Code 中按
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(Mac) - 输入 "Extensions: Install from VSIX..."
- 选择下载的
.vsix文件
安装插件后,直接使用 PageUp 和 PageDown 键即可享受平滑滚动效果,无需任何额外配置!
- PageUp - 向上平滑滚动一页
- PageDown - 向下平滑滚动一页
光标会跟随视图同步移动,提供流畅的浏览体验。
你可以在 VS Code 设置中自定义滚动行为:
- 类型:
number - 默认值:
20 - 范围:
5-50 - 描述: 平滑滚动的步数。数值越大,滚动越平滑,但可能稍慢。
示例:
{
"smoothKey.steps": 30
}- 类型:
number - 默认值:
300 - 范围:
100-1000 - 单位: 毫秒
- 描述: 平滑滚动的持续时间。数值越大,滚动越慢。
示例:
{
"smoothKey.duration": 400
}- 按
Ctrl+,(Windows/Linux) 或Cmd+,(Mac) 打开设置 - 搜索 "smoothKey"
- 修改相应的配置项
或者直接编辑 settings.json:
{
"smoothKey.steps": 25,
"smoothKey.duration": 350
}- Node.js (推荐 v18 或更高版本)
- pnpm (推荐 v8 或更高版本)
- VS Code (v1.74.0 或更高版本)
git clone https://github.com/LiRenTech/vscode-smooth-pageup.git
cd vscode-smooth-pageuppnpm installpnpm run compilepnpm run watch- 按
F5启动调试 - 会打开一个新的 "扩展开发宿主" 窗口
- 在新窗口中测试插件功能
pnpm run lint# 安装 vsce(如果还没有)
npm install -g @vscode/vsce
# 打包(使用 --no-dependencies 跳过依赖检查,因为项目使用 pnpm)
vsce package --no-dependenciessmooth-pageup/
├── src/
│ └── extension.ts # 插件主入口文件
├── out/ # TypeScript 编译输出目录
├── .vscode/ # VS Code 工作区配置
│ ├── launch.json # 调试配置
│ └── tasks.json # 构建任务配置
├── .eslintrc.json # ESLint 配置
├── .gitignore # Git 忽略文件
├── .vscodeignore # VS Code 打包忽略文件
├── .npmrc # pnpm 配置
├── package.json # 插件清单文件
├── tsconfig.json # TypeScript 配置
└── README.md # 项目说明文档
插件通过以下方式实现平滑滚动:
- 拦截键盘事件 - 通过
keybindings配置拦截 PageUp/PageDown 键 - 计算滚动距离 - 获取当前编辑器可见行数,计算一页的行数
- 分步执行 - 将一页的滚动距离分成多个小步
- 平滑动画 - 通过时间控制,在指定时间内逐步完成滚动
- 同步移动 - 同时移动视图和光标,保持一致性
欢迎提交 Issue 和 Pull Request!
- ✨ 初始版本发布
- 🎯 实现 PageUp/PageDown 平滑滚动
- ⌨️ 支持光标同步移动
- ⚙️ 支持自定义滚动步数和持续时间
MIT License
感谢所有使用和反馈的用户!
享受更流畅的代码浏览体验! 🎉