Lawrence Extensions
Lawrence的VSCode扩展集合,包含多个实用的编辑器功能增强工具。这个扩展会持续添加新功能。
当前功能模块
智能剪切板操作模块
根据剪切板内容的行数来复制当前行或选中内容。
功能列表
智能剪切板操作
1. 根据剪切板行数复制
- 读取剪切板内容并计算行数N
- 如果没有选中内容:复制光标所在行N次,并在每行保持相同的光标位置
- 如果有选中内容:复制选中内容N次,并在每块保持相同的光标位置
2. 复制选择(带换行符)
- 专为 vim V 模式优化:解决 vim 行选择不包含换行符的问题
- 智能检测选择内容是否包含换行符,如果没有则自动添加
- 确保复制后的内容保持正确的行分隔,避免内容粘连
使用方法
通过命令面板使用
所有功能都可以通过命令面板访问:
- 按
Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac) 打开命令面板
- 搜索以下命令:
Lawrence Extensions: Create Cursors by Clipboard Lines
Lawrence Extensions: Duplicate Selection with Newline
自定义快捷键
扩展默认不绑定快捷键,你可以根据需要自定义:
方法一:使用提供的示例配置
- 查看项目根目录下的
keybindings-example.json 文件
- 复制其中的配置到你的 VSCode 快捷键设置中
方法二:手动配置
- 打开 VSCode 设置 (
Ctrl+, 或 Cmd+,)
- 搜索 "keyboard shortcuts" 并点击 "Open Keyboard Shortcuts (JSON)"
- 添加你想要的快捷键配置,例如:
[
{
"key": "ctrl+shift+d",
"mac": "cmd+shift+d",
"command": "lawrencePlugin.duplicateSelectionWithNewline",
"when": "editorTextFocus"
},
{
"key": "alt+\\ c",
"mac": "alt+\\ c",
"command": "lawrencePlugin.createCursorsByClipboardLines",
"when": "editorTextFocus"
}
]
功能详细说明
根据剪切板行数复制
- 复制一些内容到剪切板(行数将决定复制次数)
- 在编辑器中:
- 将光标放在要复制的行上(无选中内容)
- 或者选中要复制的内容
- 使用命令面板执行 "Create Cursors by Clipboard Lines" 或使用自定义快捷键
Vim V 模式优化复制
- 在 vim 模式下使用 V 选择一行或多行
- 使用命令面板执行 "Duplicate Selection with Newline" 或使用自定义快捷键
- 选择的内容会被复制到下一行,并自动添加换行符保持正确格式
示例
根据剪切板行数复制示例
如果剪切板中有3行内容:
line 1
line 2
line 3
那么当前行或选中内容将被复制3次。
Vim V 模式问题解决示例
问题场景:
原始内容:Hello World
vim V 模式选择后复制 → 剪切板内容:"Hello World"(无换行符)
使用原生 duplicate → Hello WorldHello World(内容粘连)
使用新命令后:
原始内容:Hello World
vim V 模式选择后使用 Ctrl+Shift+D →
Hello World
Hello World
(正确的行分隔)
安装
- 克隆此仓库
- 运行
npm install
- 运行
npm run compile
- 按 F5 在扩展开发主机中测试
未来计划
这个扩展会持续添加新功能,包括但不限于:
- 更多智能编辑功能
- 代码片段管理
- 自定义快捷键组合
- 工作流优化工具
开发
npm run compile: 编译TypeScript
npm run watch: 监视模式编译
npm run package: 打包扩展
npm run clean: 清理旧的包文件
发布
项目提供了自动发布脚本,可以自动增加版本号并打包:
# 修复版本 (0.0.4 -> 0.0.5)
npm run publish:patch
# 次要版本 (0.0.4 -> 0.1.0)
npm run publish:minor
# 主要版本 (0.0.4 -> 1.0.0)
npm run publish:major
详细发布指南请查看 PUBLISH.md
版本历史
0.0.4
- 添加自动发布脚本和命令
- 新增 npm 发布命令:publish:patch, publish:minor, publish:major
- 添加 PowerShell 和批处理发布脚本
- 完善发布文档 (PUBLISH.md)
0.0.3
- 重构命令名称:将 clipboardLineDuplicator 改为 lawrencePlugin
- 统一命名规范,为后续功能扩展做准备
0.0.2
- 优化命令配置,移除默认快捷键绑定
- 改进文档,添加自定义快捷键说明
- 代码格式化和结构优化
0.0.1
| |