DeepWorkPlan Vim
DeepWorkPlan Vim 是 Deep Work Plan 的终端编辑器:一套面向在终端中工作的人以及编程代理的 Neovim 配置。你的计划、文档和所有命令的索引,都只需一个按键。
它是一个独立的产品,作为 Deep Work Plan v7(v7.0.0)的可选 vim 附加组件提供。Deep Work Plan 可以搭配任何编辑器使用,也可以不用编辑器;该编辑器同样不依赖 Deep Work Plan:你可以单独把它加到一台机器上,无论是否存在计划,它都能作为编辑器使用。本页描述的是 v0.5.0 版本。
为什么要为 Deep Work Plan 准备终端编辑器
Deep Work Plan 是 .dwp/plans/ 下的一个 Markdown 文件夹:包含目标、原子任务、验证关卡和持续更新的日志。人来审阅,代理来执行,两者往往都在终端里完成。为这项工作设计的编辑器,会把三样东西放在身边:计划本身、围绕它的文档,以及在二者之间切换的按键。
DeepWorkPlan Vim 就是这样的编辑器。它是一套精心整理的 Neovim 配置——语言服务器、补全、代码检查、格式化、模糊查找、文件树和精选配色主题,均按需加载——外加少数几个让它成为 Deep Work Plan 编辑器的功能界面。
- 计划
- 任务
- 关卡
- 完成
导览:不会过时的命令索引
按下 SPC h h(空格键是 leader 键),或运行 :DwpCommands,编辑器就会列出它拥有的每一个键位映射,并附一行说明。这份列表由实时键位映射生成,因此在任何地方定义的映射都会出现在索引中,无需另行登记,索引也不可能过时。
导览到此为止:启动 nvim,然后依次按空格、h、h。
- SPC h h 打开此命令索引
- SPC P 计划浏览器
- SPC m p 在浏览器中预览 Markdown
- SPC m r 在缓冲区中渲染 Markdown
- <C-a> 选中整个文件
- SPC y 复制到系统剪贴板
- SPC t f 查找文件
- SPC t t 在项目中实时搜索
- SPC x 运行或预览当前文件
- SPC n 文件树
- SPC t h 选择颜色主题
- 以及其他所有映射,始终保持最新
你会得到什么
五项功能,每一项都只需一个按键。
| 功能 | 按键 | 作用 |
|---|---|---|
| 生成式命令索引 | SPC h h |
配置中的每一个键位映射,由实时键位映射生成。 |
| VS Code 风格手势 | <C-a>, SPC y |
一个键选中整个文件,并复制到系统剪贴板。单独的 y 也会复制到那里,因为剪贴板是系统级共享的。 |
| Deep Work Plan 浏览器 | SPC P |
覆盖你仓库中计划的侧边栏,按状态分组并带进度条,还有用于查看单个计划的阅读视图。 |
| Markdown 查看器 | SPC m p, SPC m r |
在浏览器中预览 Markdown,或在缓冲区中渲染。 |
| 经过校验的安装程序 | — | 面向 macOS、Linux 和 WSL 的自包含安装程序,并为 Windows 提供有文档的手动路径。 |
无需离开编辑器即可查看计划
SPC P、:DwpPlans,或点击状态栏中的对应区段,即可打开计划侧边栏。它覆盖当前目录和 Neovim 配置目录下的每一个 .dwp/plans/ 文件夹,并按最需要关注的优先排列。在编辑器中,这些分组标签是 Working、Needs attention、Ready、Not started 和 Done。每个计划都显示进度条。
在某个计划上按回车即可打开阅读视图:一句话概括的目标、状态与进度、标出当前任务的任务清单,以及通往该计划自身文件的通俗跳转。状态栏显示当前活动的计划,起始屏幕列出前三个计划。这些界面只负责说明计划,从不写入 .dwp/。
要就地阅读计划的 Markdown 文件,SPC m p 在浏览器中预览当前缓冲区,SPC m r 则在缓冲区内渲染。两者都只在 Markdown 缓冲区中有效。
安装
安装分为三条命令:下载脚本,将其与本站所提供文件的 SHA-256 进行核对,然后运行。安装程序固定了它自身所属的版本,因此会精确安装 v0.5.0,即本页所描述的版本,除非你选择其他版本。
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
echo "4890c140528d6b8d19b6bbc4102051e0b9dce2e26f43a693bdeab2e1cd8e196b install.sh" | shasum -a 256 -c && \
bash install.sh 运行前先检查
想先看一遍?先下载脚本,核对它的指纹,阅读后再运行。
- 下载脚本
curl -fsSL https://deepworkplan.com/vim/install.sh -o install.sh - 输出其 SHA-256,并与下方的值比对
sha256sum install.sh - 阅读脚本
less install.sh - 运行脚本
bash install.sh
- 当前提供的脚本的 SHA-256
4890c140528d6b8d19b6bbc4102051e0b9dce2e26f43a693bdeab2e1cd8e196b- 42510 字节 · 1017 行
在 macOS 上,第二步请使用 shasum -a 256 install.sh。
如需选择版本,请传入 --version 或设置 DWP_VIM_VERSION:精确版本、'>=' 最低版本或 latest。DWP_VIM_REF 用于指定分支或提交。较旧的版本可能不包含本页描述的全部功能。
在 Windows 上,这些命令不适用;仓库 README 记录了手动安装路径。 Windows 安装路径
安装程序会依次:
- 检查你的操作系统和包管理器,并在缺少 git、curl 或 Lua 解释器时安装它们(使用
--skip-packages时不安装任何软件包)。 - 解析版本:使用它自身所属的版本,或
--version指定的版本。 - 使用
--nvim X.Y.Z时,把该 Neovim 版本安装到~/.local/opt,并用 Neovim 发布的 SHA-256 进行校验。 - 在改动已有的 Neovim 配置之前先询问。没有终端时,它会停止,不做任何更改,除非
--yes指示它把该配置移到一旁。 - 把仓库克隆到
~/.config/nvim,若已存在则更新。 - 运行仓库自带的
lua install.lua。 - 以无界面方式安装插件并加以检查,因此无需退出再重新打开。使用
--strict时,插件安装失败或不完整会被视为错误。
此处提供的脚本与 v0.5.0 标签下的 install.sh 逐字节相同。它的校验和就放在旁边,位于 https://deepworkplan.com/vim/install.sh.sha256,因此你可以用 shasum -a 256 -c install.sh.sha256 校验下载的文件(在 Linux 上用 sha256sum -c install.sh.sha256)。如需从第二个来源核对,可将其与 GitHub 发布页上 SHA256SUMS 中 install.sh 那一行比对。运行 bash install.sh --help 可列出所有选项。
选择版本
默认情况下,安装程序安装它自身所属的版本 v0.5.0。要选择其他版本,请设置 DWP_VIM_VERSION 或传入 --version:两者作用相同,哪个读起来更清楚就用哪个,且标志优先于环境变量。两者都接受:
| 形式 | 示例 | 安装内容 |
|---|---|---|
| 精确版本 | 0.5.0 或 v0.5.0 |
该版本 |
| 最低版本 | '>=0.4.2' |
不低于该最低版本的最新稳定版本 |
| 最新版本 | latest |
最新的稳定版本 |
完成上文的下载和校验和检查之后:
# exact version
DWP_VIM_VERSION=0.5.0 bash install.sh
bash install.sh --version 0.5.0
# minimum floor: the newest stable release at or above 0.4.2
DWP_VIM_VERSION='>=0.4.2' bash install.sh
# latest stable release
bash install.sh --version latest
请给最低版本加上引号,以免 shell 把 > 当作重定向。版本只会解析为稳定版本的标签。如需分支或提交,请改为设置 DWP_VIM_REF(DWP_VIM_REF=main 会跟随 main);版本与 ref 不一致时会报错。
容器与 CI
在镜像或 CI 任务中,没有终端,往往也没有 root 权限,此时应先下载并校验脚本,再用能让结果可复现的标志一步完成运行:
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
curl -fsSL -o install.sh.sha256 https://deepworkplan.com/vim/install.sh.sha256 && \
sha256sum -c install.sh.sha256 && \
bash install.sh --version 0.5.0 --nvim 0.12.5 --skip-packages --strict
--version 0.5.0固定编辑器版本。--nvim 0.12.5把该 Neovim 版本安装到~/.local/opt/nvim-v0.12.5,链接为~/.local/bin/nvim,并用 Neovim 发布的 SHA-256 进行校验(Linux 和 macOS)。--skip-packages不安装任何系统软件包:镜像中必须已经提供 git、curl 和 Lua。--strict在无界面插件安装失败或遗漏插件时以非零状态退出。
每个标志都有对应的环境变量(DWP_VIM_VERSION、DWP_VIM_NVIM、DWP_VIM_SKIP_PACKAGES=1、DWP_VIM_STRICT=1)。只有当镜像中可能已有一份需要移到一旁的 Neovim 配置时,才添加 --yes。
要求与平台
- Neovim 0.12 或更高版本。可以自行安装,也可以让安装程序通过
--nvim X.Y.Z添加一个经过校验的版本(Linux 和 macOS)。 - Lua:
lua、lua5.4或luajit。缺少时安装程序会补上一个。 - macOS、Linux 和 WSL 运行此安装程序。Windows 在仓库 README 中有手动路径:用 winget 安装 Neovim,把
v0.5.0标签克隆到%LOCALAPPDATA%\nvim,再在 Git Bash 中运行lua install.lua。 - 采用 GPL-3.0 许可:可自由使用、研究和修改。
更新、固定版本与卸载
要更新,请运行较新版本的安装程序,或运行 bash install.sh --version latest。重新运行会把已有的 DeepWorkPlan Vim 检出切换到所选版本,保留你的分支,并且永远不会重置本地修改:当本地更改或提交可能丢失时,它会停止,不做任何更改。
要固定某个版本,请使用 --version(参见选择版本);如需分支或提交,请设置 DWP_VIM_REF。建议使用正式版本:v0.4.0 之前的版本不包含手势、计划浏览器、Markdown 查看器以及此安装程序。
# pin a specific release, here the previous one
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
curl -fsSL -o install.sh.sha256 https://deepworkplan.com/vim/install.sh.sha256 && \
shasum -a 256 -c install.sh.sha256 && \
bash install.sh --version 0.4.2
要卸载,请在配置目录中运行 lua delete.lua。它会移除配置、插件、Mason 数据、缓存与状态,以及安装程序复制的字体,但保留 Neovim 可执行文件和你的系统软件包。
cd ~/.config/nvim && lua delete.lua
常见问题
它会覆盖我的 Neovim 配置吗?
不会,未经你批准不会。当它发现一份不是 DeepWorkPlan Vim 的配置时,交互式运行会先询问,再把它移到 ~/.config/previous-deepworkplan-vim。没有终端时,它会停止,不做任何更改,除非你传入 --yes,让它在无人值守的情况下把配置移到一旁。当该备份路径已存在时,它总是会停止,不做任何更改。
它能在 Windows 上使用吗?
此安装程序无法在 Windows 上运行。请使用仓库 README 中的手动路径,或在 WSL 中运行此安装程序。
使用它需要 Deep Work Plan 吗?
不需要。它首先是一个编辑器。它不会安装也不依赖 Deep Work Plan 技能;在存在 .dwp/plans/ 文件夹之前,计划浏览器只是没有内容可列。
v7 的 vim 附加组件如何使用它?
Deep Work Plan v7 在引导流程中将该编辑器作为可选的 vim 附加组件提供。该附加组件通过编辑器的 addon/surface.json 以只读方式检测已有安装,并且只有在征得你同意后,才会提供固定版本、经校验和验证的安装。未经明确批准,它绝不会覆盖已有的 Neovim 配置,而且它从来不是必需的。
编程代理如何使用它?
它为在终端中工作的人和编程代理而构建。它的键位映射由契约测试固定,因此肌肉记忆以及代理的预期都能在更新后保持不变。
我得到的是哪个版本?
安装程序安装的是它所属的版本(目前为 v0.5.0),除非你通过 --version 或 DWP_VIM_VERSION 选择其他版本:精确版本、>= 最低版本或 latest。DWP_VIM_REF 接受分支或提交;DWP_VIM_REF=main 会跟随 main。本页描述的是 v0.5.0 版本,它包含此处列出的全部功能。
它采用什么许可证,源自哪里?
GPL-3.0。它派生自 Andrés M Prieto 的 mu-vim,署名保留在仓库中。
源码与许可证
源码位于 DeepWorkPlan Vim 仓库。它是公开的,采用 GPL-3.0 许可,派生自 mu-vim。
相关套件条目
- Devcontainer — 可复现的开发环境(第一个附加组件)
- Dailybot — 团队可见的计划生命周期报告(第二个附加组件)
- AI Diff Reviewer — 计划最终评审期间的本地评审(第五个附加组件)
- Herdr — 在 Herdr 窗格中将任务委派给对等方(v7)
- Agentkit — 一条命令覆盖所有终端编程代理,并支持无头委派(v7)