- A simple project management and build tool based on Vimscript
-
chenxuan
-
If you need to use quickfix asynchronous output, depend on asyncrun
-
Not required if using only the default terminal
plug 'skywind3000/asyncrun.vim' "(optional)
plug 'chenxuan520/termtask.vim'
-
Use :TaskConfig to quickly open the project configuration file (no new one is created automatically)
Note: The config file molen is .config.vim, which by default is in the project root directory (there is a .git folder directory)
If the .git folder does not exist upwards, it will echo the error directly
- Use :TaskRun to quickly run the task-name task
let g:Term_project_task=[
\{
\'name' : 'build',
\'command' : 'ls -alh',
\'mode' : 'quickfix'
\'path' : s:root,
\'close' : 0,
\'type' : 'vsplit',
\'key' : '\1',
\'pre_script' : '',
\'end_script' : '',
\},
\]
-
name is the name of the task
-
command is the task command, shells can be separated by && only
-
mode is one of workflow,term,quickfix which is stand for diff mode(default term)
-
quickfix is use quickfix as output, default is 0, 1 requires asyncrun
-
term is use inside term command to exec
-
workflow is connect for two tasks,such as compile and if success execute the program else show the error
-
-
path is the path to run
termtask#Term_get_dir() and s:root is the project root directory
expand("%:p:h") for the current buffer directory
The directory can be accessed using . link
such as termtask#Term_get_dir() . "/src"
-
close is whether to close automatically at the end of the run, default is 0 (no close)
-
key is the bound shortcut key map
-
pre_script/end_script is the vimscript script that needs to be executed before and after the task is executed
- Set to 1 to automatically search for and load the project's .config.vim file every time VIM is opened (default is 0), otherwise the file will only be loaded after running :TaskRun
-
simple and small, 100 lines of internal code to build the task system with little impact on VIM startup speed
-
.config.vim as each project run load file, you can implement different VIM properties of different projects
-
the implementation of each task before and after the execution of different code can be run, more convenient to extend
-
file using Vimscript, you can use the built-in function extension
-
support for asynchronous build and terminial real-time output via quickfix, more convenient
-
support shortcut key binding
If you like this repository, you can give a ⭐