羽夏闲谈——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++)
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
随机推荐
- 什么是GRAY色彩空间
GRAY色彩空间通常指的是灰度图像,灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像.这256个灰度级别分别用区间[0,255]中的数值表示,其中,"0"表示 ...
- FCOSv2:原作的扩展版本,小修小改,性能高达50.4AP | IEEE T-PAMI 2020
本文是对FCOS的小修小改,最终性能达到了50.4AP,可谓相当强劲了,大家在工程上可以参考其中的改进以及提升方法 来源:晓飞的算法工程笔记 公众号 论文: FCOS: A Simple and ...
- 【非插件实现】wordpress网站页脚添加,网站总访问数/今日访客数
1 /** 2 * 统计全站总访问量/今日总访问量/当前是第几个访客 3 * @return [type] [description] 4 */ 5 function wb_site_count_us ...
- 在Ubuntu上安装MySQL
在Ubuntu上安装MySQL sudo apt update sudo apt install mysql-server 安装完成后,MySQL服务将自动启动.要验证MySQL服务器正在运行,请输入 ...
- 这一次,让我们一起来搞懂MySQL
欢迎加入我的专栏,和我一起开始 MySQL 学习之旅. 从日常的开发和优化中,一步步地从一个数据库小白成为 MySQL 调优的开发人员.回想起来,从我第一次带创建索引至今,已经有十个年头了.在这个过程 ...
- JS从图片base64数据中获取图片的宽高
// js从base64数据中获取宽高 var image = new Image(); image.src = "data:image/png;base64," + base64 ...
- HarmonyOS NEXT调优工具Smart Perf Host高效使用指南
在软件开发的过程中,很多开发者都经常会遇到一些性能问题,比如应用启动慢.点击滑动卡顿.应用后台被杀等,想要解决这些问题势必需要收集大量系统数据.而在收集数据的过程中,开发者则需要在各种工具和命令之 ...
- 从ID3到LGB
梳理一下树模型算法,从三种最基础的tree到lgb的全过程笔记 基于信息增益(Information Gain)的ID3算法 ID3算法的核心是在数据集上应用信息增益准则来进行特征选择,以此递归的构建 ...
- CENTOS 6.4 编译安装APACHE PHP MYSQL ZEND【转载未测试】
CENTOS 6.4 编译安装APACHE PHP MYSQL ZEND 由 cache 发布于 WWW 2013-07-21 [ 5560 ] 次浏览 [ 0 ] 条评论 标签: LAMP 搞网站跑 ...
- docker 应用篇————日志、元数据、进程查看[五]
前言 简单介绍一下dokcer的日志.元数据.进程查看 正文 查看日志命令: docker logs -f -t --tail 10 32ae 我这里的一个日志就是: 这个一直输出hello word ...