你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

一个神奇的脚本,一键运行各类程序(for Notepad++)

发布时间: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

运行失败:

sublime函数跳转插件_sublime text 3 函数跳转

运行成功:

sublime text 3 函数跳转_sublime函数跳转插件

爪哇

如上,编辑以.java结尾的java文件时,按Ctrl+D

编译失败:

sublime函数跳转插件_sublime text 3 函数跳转

编译运行成功:

sublime text 3 函数跳转_sublime函数跳转插件

C/C++

如上,编辑以.c结尾的C文件或以.cpp结尾的C++文件时sublime text 3 函数跳转,按Ctrl+D

编译失败:

sublime函数跳转插件_sublime text 3 函数跳转

编译运行成功:

sublime函数跳转插件_sublime text 3 函数跳转

上述以外的程序文件

当运行不以上述后缀结尾的程序文件时,按Ctrl+D:

理想与现实

说一下我为什么会产生写这个脚本的想法,以及遇到的一些坑。 不感兴趣的可以直接跳过~

原因

理想的

将DOS命令行写入,而不是所有运行命令

现实

仔细阅读文档后,我发现它只支持一些DOS命令(if、del、goto),而和else一样,exist根本不支持。 真是一团糟,我得想很多办法才能完成; 另外del老提示找不到文件。 ,只能使用专门的脚本来判断文件是否存在; 而如果判断结束就必须使用goto跳转,减少代码量和代码逻辑。 ,终于解决了

所以,虽然这些天我更喜欢在 Mac 下使用 Text3,但 Mac 的方法很好;-P

奖金

最近写了几篇文章,可以直接生成pdf,但是公众号平台很难插入附件。 另外公众号支持不太好,呈现的文章容易出现代码缩进混乱,部分功能不支持。

所以我打算提供pdf下载链接sublime text 3 函数跳转,会在下周发表的《数据挖掘竞赛通用框架》一文中发布,敬请关注

如有侵权请联系删除!

13262879759

微信二维码