发布时间:2023-07-17
浏览次数:0
【原创,转载请注明来自公众号“数据挖掘机修炼笔记”】
前言
一年前,我在公众号写过一篇文章《用++、C/C++开发》,大致讲了如何使用++外部运行命令来编译运行相应的程序。 现在看来,是有点明显了。 狭窄
现在,给大家分享一个我想了一天想写的++脚本。 它可以一键编译或运行/C/C++/Java程序。 理论上可以根据你的需求扩展到更多语言。
谈论编辑器和 IDE
进入题外话之前,我们先说一下开发环境。 你可以根据实际情况选择是否真的要使用++进行开发(用PS++打开文本文件的速度还是蛮快的,即使不使用它来开发,也可以用它来打开文件) 。 出色的)
一般来说,开发环境无非就是两种,编辑器(如++、vim、emacs)和IDE(如IDEA、、、),我来说说我对这三者的理解:
今天是中秋节。 如果把它比作爱情的话,小编就是一个单纯无知的女孩。 你要“调教”她,告诉她你需要什么,挖掘她的潜力。 你带来巨大的成就感; IDE 是一只狡猾的社交蝴蝶,它能读懂你的言语和情绪,还能猜出你的想法。 你只需要给出一点提示,她就能帮助你直达巅峰。
因此,我建议:初学者可以先尝试使用编辑器,熟悉语言的句型、编译运行方法,打好基础。 也可以用来快速测试一些简单的碎片代码; 但如果你开发的项目比较小,特别是需要同步协作的时候,使用IDE更加方便、稳定、高效。
鉴于很多网站未经授权抓取了我的原创文章,我决定在文章中插入二维码以维护出处,希望不打扰您阅读
要安装并运行的脚本
以下操作均在++中进行,所以请先安装++
步骤1。 安装插件
++菜单栏->插件->->显示,点击进入,找到,安装。安装成功后重启++,会出现在菜单栏->插件
第2步。 脚本:判断文件是否存在
该脚本的作用是判断文件是否存在。 之前我还以为句型和DOS的一样,但是看了文档后发现它只支持很少的DOS命令。因此,在DOS下需要通过一句就能完成的功能自己在DOS下写的。
本节参考,具体为:点击++菜单栏->插件->->,在脚本编辑框中输入以下代码:
set FILEEXISTS = 0
npe_console v+
cmd /c if exist $(ARGV) echo Exists
if "$(OUTPUTL)" != "Exists" goto ...
set FILEEXISTS = 1
:...
npe_console v-
单击下面的按钮保存脚本,并将其命名为
步骤3. 脚本:编译并运行
高潮即将来临。 这个脚本是我根据文档的学习自己做的一个轮子。 它可以对不同后缀的程序文件进行不同的编译和运行操作。 目前支持/C/C++/Java,并可自行扩展。 。
和上一节一样,先进入脚本编辑框,输入以下代码(有兴趣的可以阅读代码注释,后面可以展开)
npp_console disable // 关闭显示,否则执行时脚本时会在console窗口显示每条脚本语句,有碍观感
cd "$(CURRENT_DIRECTORY)"
if $(EXT_PART) == .java goto java
if $(EXT_PART) == .py goto python
if $(EXT_PART) == .cpp goto cpp
if $(EXT_PART) == .c goto c
goto error1 // 当非c/c++/python/java文件时,直接报错
// 下面是java的编译、执行、报错,与后面c/c++类似
label java
npp_save // 保存当前程序文件
cmd /c if exist $(NAME_PART).class (del $(NAME_PART).class) // 调用cmd窗口删除上次程序执行时编译的结果,/c是表示执行完cmd指令后关闭窗口,不加/c会使窗口一直打开,无法向下执行脚本
npp_console enable //打开显示,可以查看下面语句执行结果
javac -encoding UTF8 $(FILE_NAME) // 设置javac的编码格式为UTF8,否则代码中含有中文注释会报错
npp_console disable // 再次关闭显示,因为下面的语句没必要呈现在console窗口
npp_exec CheckFileExists $(NAME_PART).class // 调用自己写的脚本判断是否存在.class文件
if $(FILEEXISTS)==1 goto j1 // 编译成功执行运行,不成功抛错
goto error2
label j1
npp_console enable
java $(NAME_PART)
npp_console disable
goto end
label cpp
npp_save
cmd /c if exist $(NAME_PART).exe (del $(NAME_PART).exe)
npp_console enable
g++ -o $(NAME_PART).exe $(FILE_NAME)
npp_console disable
npp_exec CheckFileExists $(NAME_PART).exe
if $(FILEEXISTS)==1 goto c1
goto error2
label c1
npp_console enable
$(NAME_PART)
npp_console disable
goto end
label c
npp_save
cmd /c if exist $(NAME_PART).exe (del $(NAME_PART).exe)
npp_console enable
gcc -o $(NAME_PART).exe $(FILE_NAME)
npp_console disable
npp_exec CheckFileExists $(NAME_PART).exe
if $(FILEEXISTS)==1 goto c2
goto error2
label c2
npp_console enable
$(NAME_PART)
npp_console disable
goto end
label python
npp_save
npp_console enable
python $(FILE_NAME)
npp_console disable
goto end
label error1
npp_console enable
echo 错误:非程序文件
npp_console disable
goto end
label error2
npp_console enable
echo 错误:编译未通过
npp_console disable
goto end
label end
npp_console enable
保存脚本,我命名为,然后在++菜单栏找到 -> 运行 -> 管理快捷键 ->,并设置运行这个脚本的快捷键(如Ctrl+D),就大功告成了!
步骤4。 运行脚本
用++编辑代码文件时,建议选择UTF-8编码,点击菜单栏->格式-> in UTF-8 BOM 。以避免运行时编码错误
当您编辑以 .py 结尾且带有 ++ 的脚本时,请按 Ctrl+D
运行失败:
运行成功:
爪哇
如上,编辑以.java结尾的java文件时,按Ctrl+D
编译失败:
编译运行成功:
C/C++
如上,编辑以.c结尾的C文件或以.cpp结尾的C++文件时sublime text 3 函数跳转,按Ctrl+D
编译失败:
编译运行成功:
上述以外的程序文件
当运行不以上述后缀结尾的程序文件时,按Ctrl+D:
理想与现实
说一下我为什么会产生写这个脚本的想法,以及遇到的一些坑。 不感兴趣的可以直接跳过~
原因
理想的
将DOS命令行写入,而不是所有运行命令
现实
仔细阅读文档后,我发现它只支持一些DOS命令(if、del、goto),而和else一样,exist根本不支持。 真是一团糟,我得想很多办法才能完成; 另外del老提示找不到文件。 ,只能使用专门的脚本来判断文件是否存在; 而如果判断结束就必须使用goto跳转,减少代码量和代码逻辑。 ,终于解决了
所以,虽然这些天我更喜欢在 Mac 下使用 Text3,但 Mac 的方法很好;-P
奖金
最近写了几篇文章,可以直接生成pdf,但是公众号平台很难插入附件。 另外公众号支持不太好,呈现的文章容易出现代码缩进混乱,部分功能不支持。
所以我打算提供pdf下载链接sublime text 3 函数跳转,会在下周发表的《数据挖掘竞赛通用框架》一文中发布,敬请关注
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码