vim-projectionist插件

今天给大家推荐一下 vim-projectionist 插件,它可以封装一些开发过程中常用的操作,提升工作效率.

这个插件配置很简单,大家可以先简单看一下 官方教程,然后看我写的python项目配置.

依赖

后面的功能依赖 vim-dispatch 插件,以后会写文章来讲解(强烈推荐).

项目结构

.
├── .projections.json
├── Makefile
├── py_projectionist
│   ├── __init__.py
│   ├── mod_a
│   │   └── __init__.py
│   └── mod_b
│       └── __init__.py
└── tests
    ├── __init__.py
    └── mod_a
        └── __init__.py
  • .projectionist.json: vim-projectionist 针对当前项目的配置文件
  • Makefile: 里面封装了单元测试、代码风格检查等
  • py_projectionist: 项目源码
  • tests: 单元测试

.projectionist.json

{
    "py_projectionist/*.py": {
        "dispatch": "PYTHONPATH={project} python tests/{dirname}/test_{basename}.py",
        "alternate": "tests/{dirname}/test_{basename}.py",
        "make": "make -f Makefile"
    },
    "tests/*.py": {
        "dispatch": "PYTHONPATH={project} python {file}",
        "make": "make -f Makefile",
        "template": [
            "#!/usr/bin/env python",
            "# -*- coding: utf-8 -*-",
            "# {}测试代码模板..."
        ]
    }
}

解释一下

  • py_projectionist/*.pytests/*.py 定义源文件和单元测试文件的行为
  • dispatchvim-dispatch 插件设置默认操作,上面的两个 dispatch 都被配置成运行相应文件的单元测试
  • alternate 配置与当前文件关联的文件(例如.c.h,源文件与单元测试等)
  • make 执行我们 Makefile 中定义的功能
  • template 创建文件时,自动插入的模板

开发演示

cd py_projectionist/mod_a
vim mod_a.py

文件内容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def add(x, y):
    return x + y

命令模式下输入: :A,创建/切换到对应的单元测试文件:

alternate.gif

单元测试代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from py_projectionist.mod_a import mod_a
import unittest

class ModATest(unittest.TestCase):
    def test_add_int(self):
        self.assertEqual(mod_a.add(1, 2), 3)

    def test_add_float(self):
        self.assertEqual(mod_a.add(1.0, 2), 3.0)

if __name__ == '__main__':
    unittest.main()

在命令模式下输入 :Dispatch,运行单个文件的单元测试(在源文件或者测试文件执行均可):

single_unittest.gif

运行 Makefile 中的命令:

makefile_command.gif

参考资料

前往独立博客阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值