0
点赞
收藏
分享

微信扫一扫

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/:!​​.



举报

相关推荐

0 条评论