羽夏闲谈——NewCode
前言
在工作学习中,我配置好了一个VSCode,学习C语言,需要经常性的创建代码文件,而往往这里面有一个固定的模板,比如下面:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
int main(int argc,char* argv[])
{
/* code */
system("pause");
return 0;
}
你总不能一个一个文件复制粘贴吧?尤其代码量上去的时候,尤其不方便。但如果你学习的语言越多:C++、Python、JavaScript,以及写博客需要用MD。这些都能在VSCode得到很好的解决方案,但是管理起来十分麻烦。于是我是想为什么不自己写一个软件来实现这种管理呢?NewCode于是就写出来了,原本是一种语言一个版本,现在只需要配置好,就能实现一个NewCode程序管理大量的单文件代码了。
仓库地址
目前只在GitHub上,等这个软件差不多了搬到Gitee:https://github.com/Wing-summer/NewCode
编码语言和编译环境
本人使用目前版本较高的VS2020,使用C#语言编写,下载编译即可。
入门
当你双击运行时,就会出现这个界面。

也就是说,当你直接运行该程序不带参数的时候,只会显示帮助并显示按任意键退出。
本工具的所有命令不区分大小写,如下为几个示例:
NewCode -t cpp -p C:\test -k
NewCode -st c
NewCode -t cpp -p C:\test -f "hello" " world"
NewCode -q
看不懂,我们来看看每个参数的含义:
-t | -type:类型,配置 json 代码块时的 id
-p | -path:路径,创建文件的路径,如果省略后缀,则以 json 配置为准添加
-k | -keepalive | -keep | -alive:执行该程序后不会退出,保持运行状态,可以执行其他的命令
-f | -fill | -param:填充可变参数,这对于模板十分有用,如何编写合适请见示例
-st | -settype:程序运行后,如果没特地设置,默认调用配置文件的第一个
-q:退出程序,仅在 keepalive 环境中有效
-add [type] [path] {ext}:添加以 type 的内容为 id ,然后用 path 作为路径,注意路径建议为相对路径,如果有 ext 参数则以它
为扩展名。
-mod [type] p={path} ext={ext}:修改 type 中的配置
-del [type]:删除以 type == id 的内容
-cls:清理所有的配置
-showAll:显示所有配置键值
-showInfo [type]:显示该类型的所有信息
-showtype [type]:作用同 -showInfo
-r | -restart:重启程序,如果后面带有 # 作为参数说明以管理员权限重启,重启默认带有 -k 参数。
-curdir | -pwd:显示当前工作目录
-prodir:显示该程序所在目录
-cd:更改当前目录,这通常很有用
-setenv:为该程序所在目录添加环境变量
-delenv:删除该程序所在目录的环境变量
下面有个说明:如果在keepalive状态,也就是带有参数-k运行时。就不需输入 NewCode。如果上面的参数没有,该程序会调用cmd命令运行。如果被视为cmd命令运行,开头不得带有-字符,否则视为内部命令。
输入几个命令测试一下:

配合VSCode的终端功能更舒服:

编写配置
文件配置目录建议为相对目录,使用相对目录是指相对于本程序来说的。比如我配置一个cpp模板,如下所示:
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{
// Written By |[0]|
system("pause");
return 0;
}
其中你可能会发现一个特殊字符|[0]|这个是啥意思,对于C#来说,如果格式化此字符串,等同于如下代码:
string.Format( "Written By {0}" , arg );
看到这个代码是不是懂了很多,因为代码语法比如C++、C、C#、Java等语言的大括号是有含义的,为了实现格式化功能,我对这个做了一个转义而已。也就是说,这个格式化支持所有的C#代码格式化。
配置文件弄好,并用UTF-8编码进行保存,这个就是我的程序遵守的协定,记好它的相对路径假设code\cpp.txt。
然后我们在控制台并转到程序目录,运行该程序并带上参数:
NewCode -add cpp code\cpp.txt
这样我们就成功的在配置文件配置好了。
如果程序位置固定的话,建议为它设置环境变量,这就需要我们添加,不过我程序已经封装好这个功能,需要管理员权限,但是通常是以普通权限启动的,我们可以在keepalive模式下使用下面的命令:
-r #
#就是代表管理员权限,然后就使用keepalive模式的管理员权限启动了这个程序,然后输入下面的命令:
-setenv
这就会为该程序所在目录添加环境变量,此时就不要动它的目录了,以防失效。
生成使用
接着上面的配置,我们就可以使用该程序创建,我们可以输入下面的命令:
Newcode -t cpp -p D:\test -f wingsummer
上面命令的含义就是在D盘创建一个文件test.cpp文件,并将wingsummer作为参数进行格式化,调用配置cpp,也就是我们之前配置好的,生成好的文件打开就会有如下结果:
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{
// Written By wingsummer
system("pause");
return 0;
}
但是如果没有后面的格式化填充命令,将会得到警告,并用空字符串进行填充,也就是如下命令:
Newcode -t cpp -p D:\test
也就是下面的结果:
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{
// Written By
system("pause");
return 0;
}
这就可以正常使用了,想要更好的使用的话,请详细阅读源码并作出自己习惯的使用的方式的代码,毕竟经过自己体会的代码,自己做出的工具是最趁自己手的。
关于提交 Bug
自己闲时写的,难免有错误。如有Bug,欢迎递交。如果有其他需求,请自己把C#代码写好并在GitHub上进行Pull Request,本人不会实现自己不需要的Request功能。
协议
该软件使用MIT协议,说明您可以使用可以在合法的用途下对其代码进行修改以符合自己的需求。但请不得随意用于商业用途,除非您对改代码修改程度超出总代码的八成。您可以将您的贡献自行写入该文件中,但不得删除原作者的信息和说明。
羽夏闲谈——NewCode的更多相关文章
- 羽夏闲谈——VSCode 配置 C/C++环境
前言 VSCode是微软发布一款跨平台的源代码编辑器,其拥有强大的功能和丰富的扩展,使之能适合编写许多语言.我的环境是64位Win10,如果是其他系统请自行判断调整.本人根据网上的配置方法在结合本 ...
- 羽夏闲谈—— C 的 scanf 的高级用法
前言 今天看到博友发了个有关scanf的使用的注意事项,就是讨论缓冲区残存数据的问题,用简单的代码示例复述一下: #define _CRT_SECURE_NO_WARNINGS #include ...
- 羽夏闲谈—— C 语言入门之问
前言 最近加入了一个QQ频道,有很多想学C的纯小白.为什么这么说呢?因为他们会问一些环境用啥?为啥我配置不行?看了教程配置环境我也不会,咋配置?为啥这里代码这里有错误?啥语言好不好?诸如此类的问题 ...
- (五)羽夏看C语言——结构体与类
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- (四)羽夏看C语言——循环与跳转
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- (三)羽夏看C语言——进制
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- (二)羽夏看C语言——容器
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- (一)羽夏看C语言——简述
"羽夏看C语言"介绍什么 本系列从汇编的角度,比较翔实的介绍C语言.C++和C其实是一样的东西,C++的编译器只是更强大,更能帮助我们写代码,例如模板.没有特殊说明,本系列不会 ...
- (六)羽夏看C语言——函数
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- (七)羽夏看C语言——模板(C++)
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
随机推荐
- rabbitmq学习记录
一.RabbitMQ的概念 RabbitMQ 是一个消息中间件:它接受并转发消息.你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这 ...
- 【Java】使用位运算完成数组中两个变量交换位置
1 /** 2 * 3 */ 4 package com.raliable.chapter_0; 5 /** 6 * @author : Administrator 7 * @date :2022年4 ...
- 应对 DevOps 中的技术债务:创新与稳定性的微妙平衡
技术性债务在DevOps到底意味着什么?从本质上讲,这是小的开发缺陷的积累,需要不断地返工.它可能由多种原因引起,例如快速交付新功能的压力,这可能会导致团队不得不牺牲代码的整洁和完善.但这些不完整的小 ...
- 到底什么是AQS?面试时你能说明白吗!
写在开头 上篇文章写到CAS算法时,里面使用AtomicInteger举例说明,这个类在java.unit.concurrent.atomic包中,存储的都是一些原子类,除此之外,"java ...
- #树状数组,欧拉函数#CF594D REQ
题目 给定 \(n\) 个数,求 \(\varphi(\prod_{i=l}^r{a_i})\) 分析 考虑单个欧拉函数的求法,只需要求出这个数的质因数计算即可. 那么考虑离线,枚举右端点,记录每个质 ...
- #分层图最短路,Dijkstra#洛谷 4568 [JLOI2011]飞行路线
题目 一个无向图,每条边都有花费,可以有\(k\)次挑选边去除花费的机会,问从指定起点到指定终点的最小花费 分析 考虑用分层最短路完成,也就是在同一层走需要花费,不同层走不用花费,最终走到最底层,然后 ...
- 如何在 Python 中执行 MySQL 结果限制和分页查询
Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 "customers" 表中的前 5 条记录: import mysql.c ...
- 学习 XSLT:XML文档转换的关键
XSL(eXtensible Stylesheet Language)是一种用于 XML 的样式语言. XSL(T) 语言 XSLT 是一种用于转换 XML 文档的语言. XPath 是一种用于在 X ...
- Hadoop之Hive架构与设计
Hadoop之Hive架构与设计 Hadoop是一个能够对大量数据进行分布式处理的软件框架.具有可靠.高效.可伸缩的特点. HDFS:全称为Hadoop分布式文件系统(Hadoop Distribut ...
- 抓包整理————tcp 三次握手性能优化[十]
前言 tcp 三次握手性能优化. 正文 服务器三次握手流程示例: 下面就是3次握手的过程: 知道这个有什么用呢? 我举一个我使用到的例子哈. 比如有很多 tcp 连接到一台机器上机器上,那么tcp_m ...