vim-dispatch中文文档
简介
利用Vim
编译器系统的强大功能
而不受同步
限制.
命令
dispatch-:Make
:Make[参数]
,使用当前的:compiler
设置,在前台
分发构建.适配器策略各不
相同,但目标是不窃取
焦点,就实现可见
性.构建
后,加载
结果到quickfix
列表并调用:cwindow
.此命令适合如"构建 此文件
"等较短
的任务.
:Make![参数]
使用当前编译器设置,在后台分发构建.使用:Copen
加载结果.此命令适合如"运行整个测试套件
",等较长任务.
dispatch-:Copen
:Copen
加载最新构建到quickfix
列表中并使用:copen
打开它.在完成构建前调用它.
:Copen!
用最后
解析器加载最新构建
到快速修复
列表中.无法判断原因时,这很有用.
dispatch-:Dispatch:
:Dispatch[!][选项]{程序}[参数]
找到设置'makeprg'
为{程序
}的编译器插件
并对给定的{程序
}和{参数
},使用'errorformat'
来分发Make
,如果未找到编译器插件
,则用%+I%.%#
通用格式.Make
是当前,而分发
使用特定编译器插件
.
:Dispatch
,通过在编译器插件
中查找CompilerSet makeprg={程序}\[参数]
或CompilerSet makeprg={程序}
来选择编译器
.要强制给定{程序
}使用给定{编译器
},请创建~/.vim/after/compiler/{编译器}.vim
,并添加如下
一行:
"CompilerSet makeprg={程序}"
如果需要更多控制
,可设置g:dispatch_compilers
,来包含键命令和值
的编译器插件.使用空值
跳过匹配串
,并用其余命令
重试.
let g:dispatch_compilers = {
\ "latex": "tex",
\ "bundle exec": ""
}
可可选的在{程序
}前提供以下1+
选项
1,-compiler=...
,强制用编译器
插件
2,-dir=...
,在给定
目录中运行
命令
:Dispatch[!][选项]--[参数]
相当于:Make
但接受选项
.
b:dispatch
:Dispatch[!][选项]
,使用b:dispatch
中的选项,程序和参数
调用:Dispatch
.在quickfix
窗口中,它重新运行显示的分发
.无其他默认值时,相当于:Make
.
dispatch-:FocusDispatch
:FocusDispatch[选项]{程序}[参数]
,无参设置:Dispatch
的全局默认命令
.覆盖b:dispatch
.
:FocusDispatch![选项]{程序}[参数]
,无参设置:Dispatch
的局部默认命令
.覆盖b:dispatch
和全局默认值
.
:FocusDispatch!
,清除:Dispatch
的全局和窗口本地默认值
.
:FocusDispatch
,显示无参调用:Dispatch
时运行的任务.
:0Dispatch[!][选项]
,提供区间来:Dispatch
,跳过重点任务
并强制b:dispatch
.
dispatch-:AbortDispatch
:AbortDispatch
,中止最近构建.
:AbortDispatch{命令}
,中止{命令
}的最新构建
.
dispatch-:Start
:Start[选项]{命令}
在新得焦
窗口中启动
进程.如果{命令
}和执行目录
匹配先前:Start
调用,如果可能,让其得焦.选项:
-dir=...
,在给定
目录中运行命令.
-title=...
,支持适配器
的短标签
-wait=...
何时显示按回车
提示:"always","never"
或"error"
.
:Start![选项]{命令}
在新的,无焦点
窗口中启动进程.如果{命令
}和当前工作目录
匹配先前的:Start
调用,闲着.
b:start
:Start[!][选项]
.不带参数,:Start
由b:start
给出的选项和命令
.如果未设置,则回退
到'shell'
.
dispatch-:Spawn
:Spawn[!][选项][命令]
类似:Start
,但总是产生新进程
而不是工作在现有进程
.默认总是生成新的'shell'
.
:Spawn[!][选项]
给:Spawn
提供区间来生成b:dispatch
.方便使用交互式
调试器.
分发的映射
提供了以下方便映射
.
m<CR> :Make<CR>
m<Space> :Make<Space>
m! :Make!
m? Show "makeprg"
`<CR> :Dispatch<CR>
`<Space> :Dispatch<Space>
`! :Dispatch!
`? :FocusDispatch<CR>
"<CR> :Start<CR>
"<Space> :Start<Space>
"! :Start!
"? Show b:start
g"<CR> :Spawn<CR>
g"<Space> :Spawn<Space>
g"! :Spawn!
g"? Show "shell"
可用g:dispatch_no_maps=1
禁用
分发策略
按优先级
列举策略.使用第一个
可用的.一些策略
仅针对一组任务.
用给定策略
分别赋值g:dispatch_no_strategyname_make
或g:dispatch_no_strategyname_start
来禁用:Make/:Dispatch
或:Start/:Spawn
.如,要避免:Dispatch
使用Job
处理器:
let g:dispatch_no_job_make = 1
除了使用VimResized
的Tmux
外,所有策略
都需要作业
支持加上带FIFO
文件系统(基本上除了Windows
之外所有)或客户服务
来支持前台制作.
Tmux
前台在底部
拆分出新小窗口
.关闭
面板触发加载结果到quickfix
列表中的VimResized
事件.
也可在GUI
使用tmux
策略.从tmux
内部启动Vim
或赋值g:tmux_session
.对前台制作
用新窗口
而不是拆分
.
作业
使用Vim8
和Neovim
中的作业
支持实时更新quickfix
列表.
GNU
屏幕
总是使用新窗口
.
终端
使用Vim
和Neovim
各自的:terminal
功能.
窗口
可用标准的cmd.exe
或cygwin
壳.前台和后台,都最小化
启动:Make
调用来避免失焦.
iTerm
如果在MacVim
中打开了至少一个iTerm
窗口,或如果Vim
在iTerm
中运行,则会触发
此策略.仅用于:Start
.
X11
仅对:Start
,使用g:dispatch_terminal_exec
,"$TERMINAL-e"
或"xterm-e"
.后台
调用需要安装wmctrl
(来切回焦点
到Vim
).
无头
分叉
任务到后台
.它正在工作
,但是你看不到它.记得检查:Copen
.存在该策略表明:Make!
和:Start!
永远不会阻止Vim
.
同步
所有其他方法都失败
时,运行:make/:!
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现