Sublime插件开发:开发机与测试机代码同步

本文介绍了一款用于Sublime Text的自定义插件,该插件能够实现在开发过程中的一键部署功能,帮助开发者快速将本地代码同步到测试服务器,并在浏览器中预览效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近遇到一个问题,开发代码的时候(以php为主)是在开发机上(有samba),但开发机的环境却跟线上环境不一致(lamp环境、路由规则、mysql、redis等都不一致,也就是无法在开发机上看到自己代码的效果),而如果想看项目的效果就只能上测试机(在开发项目的时候有一台开发机同时配一台测试机)。它们之间的代码同步是通过一个shell脚本进行的。这就很影响开发效率(无法实现php的所做即所见,需要上终端上运行个命令。。。),特别是像我这种重度依赖sublime编辑器的。因此就想怎么能在sublime下开发,然后通过一键式命令实现同步代码,最后可以直接在浏览器上看到效果(接口的json数据或var_dump调试数据)。

废话不多说,开始上干货:
1、插件代码:
我的笔记本是windows,通过samba在sublime下编辑开发机上的代码:
在:C:\Users\ComputerName\AppData\Roaming\Sublime Text 3\Packages\ 目录下创建一个文件夹:
名字按需要,这里叫Deployotp,然后在这个文件夹中创建python文件:deployotp.py,然后编辑文件,写入代码:

import os
import sys
import re

import sublime
import sublime_plugin

import urllib

class DeployotpCommand(sublime_plugin.TextCommand):
    def loadSetting(self):
        #sublime自带的获取配置信息的函数(配置相关内容见步骤2)
        self.settings = sublime.load_settings('Deployotp.sublime-settings')

    def execDeploy(self, url, buildPath, deployHost, buildFileLocation = ""):
        #拼接url
        url = url + '?buildPath=' + buildPath + '&host=' + deployHost + '&buildFileLocation=' + buildFileLocation
        content = urllib.request.urlopen(url).read()
        if content == None or content == "":
            #在sublime下方的状态栏打印消息,便于查看插件的运行结果
            sublime.status_message('fail to run deployotp')
        else:
            sublime.status_message('deployotp success')


    #sublime插件的入口
    def run(self, edit):
        self.loadSetting()
        #获取执行命令所在文件(就是需要同步到测试机的文件)的路径
        path = self.view.file_name()
        #拼接buildPath
        buildPath = '' #省略
        self.execDeploy(self.settings.get('remoteUrl', ''), buildPath, self.settings.get('deployHost', ''), self.settings.get('buildFileLocation')) #从配置中获取一些参数传给execDeploy函数
        else:
            sublime.status_message('wrong dir')

到此插件的代码部分就写完了。代码是去开发机上调起一个php进程,然后进行部署,这里就不详细写了。这里只是对第一次开发sublime插件的一个小结。

2、插件配置
如果不要求对插件中的一些参数可配置,可以忽略此步。
在Deployotp文件夹下,创建文件:Main.sublime-menu,文件内容如下:

[
    {
        "id": "preferences",
        "children":
        [
            {
                "id": "package-settings",
                "children":
                [
                    {
                        "caption": "Deployotp",//插件名
                        "children":
                        [
                            {
                                "command": "open_file", "args":
                                {
                                    "file": "${packages}/Deployotp/Deployotp.sublime-settings" //配置文件的路径
                                },
                                "caption": "Settings – Default"
                            },
                            { "caption": "-" }
                        ]
                    }
                ]
            }
        ]
    }
]

最终效果是在sublime的菜单栏“preferences”中的“package-settings”中插入我们的插件配置,实现对插件参数的可配置。

3、在右键的菜单栏中增加插件的快捷方式:
在Deployotp目录下,新建文件:Context.sublime-menu,内容入下:

[
    {
        "id": "deployotp",
        "caption" : "deployotp",
        "command" : "deployotp"
    }
]

效果就是邮件后就有名为deployotp的快捷方式了,这里是在一级菜单下直接写的,sublime也支持多级菜单,不再赘述。

4、增加快捷键直接调用插件:
右键其实往往懒得去点,远不如快捷键方便,快捷键的配置在:
preferences->Key Bindings->Default.sublime-keymap/User.sublime-keymap 中,此处增加如下配置:

{ "keys": ["ctrl+alt+u"], "command": "deployotp" },

实现的效果就是按住ctrl+atl+u键,执行deployotp命令。

至此,插件就基本开发完了。

水平有限,欢迎指正~
如需转发,请注明出处,thx~

sublime插件api:http://www.sublimetext.com/docs/3/api_reference.html
sublime插件样例:http://www.sublimetext.com/docs/plugin-examples

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值