SpaceVim 下的非同步任務系統

wsdjeg發表於2020-02-15

專案的構建、打包、測試通需要呼叫一些外部命令,比如makeant等,SpaceVim 內建一個任務管理系統,通過分析專案的任務配置檔案,獲取相關命令,並且非同步執行,同時根據配置按照需求展示執行結果。

配置檔案

配置檔案支援全域性配置檔案以及專案區域性配置檔案,分別為~/.SpaceVim.d/tasks.toml.SpaceVim.d/tasks.toml,區域性配置檔案具有更高的優先許可權。

基本使用

以下為一個簡單的 hello world 示例:

[my-first-task]
    command = 'echo'
    args = ['hello world']
複製程式碼

新增以上內容至 ~/.SpaceVim.d/tasks.toml後,在SpaceVim內按下SPC p t r快捷鍵,就會彈出如下介面:

SpaceVim 下的非同步任務系統

可以使用j/k按鍵進行上下選擇,Enter鍵執行,也可以按下任務名稱前面的序號直接執行。執行效果如下:

SpaceVim 下的非同步任務系統

進階使用

對於一些複雜的任務,可以使用預定義的一些變數,來簡化配置檔案,比如,在一個簡單的C專案裡:

[in]: e:/ctest/                         
  ▶ bin/                                    
  ▼ src/                                    
        main.c                                
複製程式碼

編譯一個簡單的編譯當前C檔案src/main.cbin/目錄,以及呼叫編譯後的可以執行檔案執行:

[file-build]
    command = 'gcc $(file) -o $(workspaceFolder)/bin/$(workspaceFolderBasename)'
[file-run]
    command = "$(workspaceFolder)/bin/$(workspaceFolderBasename)"
複製程式碼

上面的配置檔案裡涉及到的變數分別是:

變數名
$(file) e:/ctest/src/main.c
$(workspaceFolder) e:/ctest
$(workspaceFolderBasename) ctest

SpaceVim 中文官網: spacevim.org/cn/

中文 Gitter 聊天室:gitter.im/SpaceVim/cn

相關文章