因为 SublimeText 有很多插件都是使用 Py 写的,而我想使用 dotnet core 给 SublimeText 写一个编译插件,也就是在我使用 Markdown 的时候可以点击编译,将 Markdown 转 doc 或者做其他的



在 SublimeText 有一个功能就是使用 Tools 的 Build System 添加新的 Build 通过点击new Build System 就可以新建一个用 sublime-build 结束的文件

将会这个文件保存到 SublimeText 所在的文件夹,在C:\Users\用户名\AppData\Roaming\Sublime Text 3\Packages\User 就可以添加编译

先来创建一个 dotnet core 项目,这个项目先给一个随意的名字

这个项目只是用来输出拿到的参数

        static void Main(string[] args)
{
var str = new StringBuilder();
foreach (var temp in args)
{
str.Append(temp + "\r\n"); Console.WriteLine(temp);
} File.WriteAllText(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "KeameaMouhalis"), str.ToString());
}

代码很简单,上面用Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)因为想写文件到运行的文件夹

例如这个项目编译出的路径是 D:\lindexi\github\PisairtekaDrallhairlo\PisairtekaDrallhairlo\bin\Debug\netcoreapp2.0\PisairtekaDrallhairlo.dll 在刚才打开的 sublime-build 可以添加下面代码

{
"file_patterns":["*.md"],
"cmd": ["dotnet" , "D:\\lindexi\\github\\PisairtekaDrallhairlo\\PisairtekaDrallhairlo\\bin\\Debug\\netcoreapp2.0\\PisairtekaDrallhairlo.dll","$file"]
}

这里的 file_patterns 就是表示在什么的文件可以使用这个编译,第二个就是调用 cmd 运行命令

可以传入的参数很多,这里的 $file 表示当前进行编译文件,可以选的参数请看下面

  • $file_path 当前文件所在路径,比如 C:\Files
  • $file 当前文件的完整路径,比如 C:\Files\Chapter1.txt
  • $file_name 当前文件的文件名,比如 Chapter1.txt
  • $file_extension 当前文件的扩展名,比如 txt
  • $file_base_name 当前文件仅包含文件名的部分,比如 Document
  • $packages Packages 文件夹的完整路径
  • $project 当前项目文件的完整路径
  • $project_path 当前项目文件的路径
  • $project_name 当前项目文件的名称
  • $project_extension 当前项目文件的扩展部分
  • $project_base_name 当前项目仅包括名的部分

现在将 sublime-build 文件存放到 SublimeText 所在的文件夹,注意给一个名字,然后就可以在 Build 里看到,现在选择 Build System 的对应的方式进行编译,点击 Build 就可以看到输出编译

在刚才的项目写文件是因为在 SublimeText 的控制台看到的是如下界面

对于所有的中文都没有显示,所以写入文件就可以从文件里看,可以看到传入的文件是不会和 SublieText 显示一样

现在有了需要编译的文件的路径,就请发挥想想开发自己的编译插件

参见:Build Systems – Sublime Text 3 Documentation

如何优雅地使用Sublime Text3 - 简书

Build Systems — Sublime Text非官方文档(中文翻译版)


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

dotnet core 添加 SublimeText 编译插件的更多相关文章

  1. 为Eclipse添加反编译插件,更好的调试

    为Eclipse添加反编译插件,更好的调试 一般来说,我们的项目或多或少的都会引用一些外部jar包,如果可以查看jar包的源代码,对于我们的调试可以说是事半功倍. 1.下载并安装jad.exe.将ja ...

  2. Maven 添加jdk编译插件

    问题描述: 默认情况下,eclipse的maven项目使用jdk1.5编译,而我们的jdk为1.8每次更改jdk1.5之后,只要maven项目已更新,eclipse就会自动的回到jdk1.8结局方法: ...

  3. myeclipse 添加反编译插件

    文件下载地址: 链接: https://pan.baidu.com/s/1th2goaA2aS45kO84dX1Bdg 密码: g1fu 先关闭myeclipse1.下载jad1.5.8g 下载后解压 ...

  4. Eclipse下配置tomcat且使用eclipse开启debug模式,集成JAD反编译插件

    Eclipse运行Tomcat的2种方式 eclipse启动Tomcat服务输入http://localhost:8080/报404解决方法 Eclipse 中Tomcat 启动 与直接启动Tomca ...

  5. dotnet core 2.1 使用阶梯编译

    在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码.可以看到代码是在第一 ...

  6. dotnet core 使用 CoreRT 将程序编译为 Native 程序

    现在微软有一个开源项目 CoreRT 能通过将托管的 .NET Core 编译为单个无依赖的 Native 程序 这个项目现在还没发布,但是能尝试使用,可以带来很多的性能提升 使用 CoreRT 发布 ...

  7. 转: MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件

    MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件 (2012-11-19 15:36:35) 转载▼ 标签: myeclipse jad 反编译 插件 it 分类: M ...

  8. dotnet core如何编译exe

    dotnet core 有一个转变,他用dll格式来代替exe作为通用执行格式,然后要命令行dotnet yourApp.dll 来运行程序.为了提高逼格,双击可以运行,可以采用以下方案: 方案一 用 ...

  9. dotnet core 跨平台编译发布

    vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...

随机推荐

  1. 学习es6

    #第一节 初始化项目 npm init -y 安装babel-cli npm install -g babel-cli npm install --save-dev babel-preset-es20 ...

  2. 50倍时空算力提升,阿里云RDS PostgreSQL GPU版本上线

    2019年3月19日,阿里云RDS PostgreSQL数据库GPU规格版本正式上线,开启了RDS异构计算并行加速之路.该版本在RDS(关系型数据库服务)的云基础设施层面首次完成了与阿里云异构计算产品 ...

  3. 移动端的vh 和 vw简介和使用场景

    vw 相对于视窗的宽度:视窗宽度是100vw:vh则类似,是相对于视窗的高度,视窗高度是100vh. 这里的视窗指的又是啥? 是浏览器内部宽度大小(window.innerWidth)? 是整个浏览器 ...

  4. $.extend用法详解(一)

    jQuery.extend( target [, object1 ] [, objectN ] ) 在这里target是Object,它有两个作用: 1. 如果后面没有对应的object1及objec ...

  5. 重温Observer模式--热水器·改

    引言 在 C#中的委托和事件 一文的后半部分,讲述了Observer(观察者)模式,并使用委托和事件实现了这个模式.实际上,不使用委托和事件,一样可以实现Observer模式.在本文中,我将使用GOF ...

  6. 如何在云上使用confd+ACM管理敏感数据

    在前面的一些文章中,我们介绍了如何在云上安全的存放配置数据,但是上面的方法都是有代码侵入性的,也就是说需要修改应用程序,本文会讲解如何使用 confd+ACM 在不修改代码的情况下动态修改应用所需的配 ...

  7. QT 捕获事件(全局拦截)

    QT 捕获应用键盘事件(全局拦截) 主窗口只有一个QTabWidget,每个tab中嵌入相应的窗口,在使用的过程中,需要主窗口响应键盘事件,而不是tab中的控件响应.故采取以下方式. 重写QAppli ...

  8. 在Debug模式下,如何给.lib和.dll添加一个d标记(*d.lib,*d.dll)

    选中工程->右键->属性->配置属性->常规,可以看到项目默认值的配置类型有好几种类型,选择静态库类型生成lib文件,选择动态库类型生成dll文件,选择应用程序生成exe文件, ...

  9. 通知: Spring Cloud Alibaba 仓库迁移

    最近,Spring Cloud 官方修改了各个第三方项目的发布策略,第三方 spring-cloud 项目需要自身维护.基于此策略,Spring-Cloud-Alibaba 项目迁移到了 alibab ...

  10. shell学习(17)- shell中2>&1的解释及输入输出重定向

    大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默 ...