notepad++ 配置一键保存+运行 (增强)

notepad++ 配置一键保存+运行

每次都要按ctrl+s然后再按运行,很麻烦。

Notepad++中NppExec的使用:

一、何为NppExec

简单的说,这个插件可以让用户在NPP中直接运行一些命令和程序,而不用启动这些命令和程序对应的实际工具或编译器。

  1. NppExec是…

NppExec是介于Notepad++和外部工具/编译器之间的一个中间件。它允许用户在NPP中直接运行这些工具/编译器。
NppExec是一个控制台(Console)窗口,它能展示运行过程的输出结果,并将控制台窗口的输入重新定向(redirect)到运行过程中(有一些限制)。
NppExec是其内部命令的一个解释器。通过"Execute…"(执行)对话框,它能逐条执行多条NppExec命令(也称为NppExec脚本),也能从控制台窗口直接执行单条命令。
2. NppExec不是…

NppExec并不是一个控制台模拟器(console emulator)。NppExec的Console不是一个“真正”的控制台窗口,它没有提供控制台屏幕缓冲区(console screen buffer)。我的理解是NppExec的Console窗口中只是输出代码在真正的控制台中运行的结果。
NppExec并不是一个命令解释器。虽然它能执行NppExec的命令或脚本,但它不能理解诸如’copy’之类的命令。
NppExec并不是一个编译器。它能执行外部编译器的代码,但它本身不是编译器,执行这些代码不是它自己的功能。
二、安装

在“插件’菜单下打开插件管理器(Plugin Manager),在可以插件(Available)中找到NppExec,选择后点击下方的"Install"就可以了。安装完成后NPP会提示重启,重启后在插件菜单下就能看到NppExec。

三、基本用法

  1. 获取帮助

Plugins -> NppExec -> Help/Manual :打开用户指南。

Plugins -> NppExec -> Help/Docs… :打开NppExec.txt和NppExec_TechInfo.txt文件,前者包括NppExec的所有命令、环境变量的语法和说明,后者包括NppExec的一些高级”隐藏“设置。

help:在Console中输入help可以查看以下内容

控制台快捷键
控制台命令
通用命令(General commands)和环境变量
help :help后加上命令的名字(中间用空格隔开)可以直接查看该命令的帮助文档。

  1. 简介

NppExec的主要原理与NPP中的“运行”命令(F5)相同:执行给定的命令。通常就是以给定的参数执行一些程序或工具,参数能够以NPP中环境变量的形式来传递。比如,在IE中启动当前文件或者用某个编译器编译当前文件。NppExec提供了额外功能:

它有一个控制台窗口显示控制台程序的输出
它允许用户逐条执行多条命令
它提供了NPP的所有环境变量,也加入了它自己的若干变量
它有一些额外命令,只有想不到,没有做不到 ?
niubility ?
NppExec中执行命令的四种方式: (四种方式)

使用NppExec的控制台窗口:输入命令,按Enter执行
使用NppExec的“Execute…”对话框:可以输入多条命令,保存为NppExec脚本,执行时逐条执行
使用NppExec的"npp_exec

有关内部过程和外部过程在下面“小试牛刀”这一节中。

  1. 小试牛刀

3.1 以内部过程的方式执行程序

在控制台窗口或Execute窗口直接输入程序的名字(必要时添加路径)就可以按内部过程的方式运行程序,输入时也可以带参数。

比如:输入cmd可以运行windows的命令提示窗口(cmd.exe程序),由于cmd本身是控制台程序,因此它会在NppExec的Console窗口中运行,也就可以接着在Console窗口中直接输入cmd的命令来运行,用exit命令退出cmd。 又,输入calc则运行windows自带的计算器。由于计算器不是控制台程序,因此它独立运行。

可以看到,以内部过程运行程序,不管是控制台程序还是非控制台程序,开始都打印Process started >>>,结束后打印<<< Process finished.(Exit code 0)。括号中的Exit code值可能会改变,表示不同的退出状态。这是NppExec在等待内部过程执行完毕。

下面是cmd中查看系统时间的一个例子(控制台中):

复制代码
1 ================ READY ================
2 cmd
3 cmd
4 Process started >>>
5 Microsoft Windows [版本 6.3.9600]
6 © 2013 Microsoft Corporation。保留所有权利。
7
8 C:\Users\acton\Desktop>time /t
9 time /t
10 00:13
11
12 C:\Users\acton\Desktop>exit
13 exit
14 <<< Process finished. (Exit code 0)
15 ================ READY ================
复制代码

也可以在运行程序时带参数,查看时间可以写成:

复制代码
1 ================ READY ================
2 cmd /c time /t
3 cmd /c time /t
4 Process started >>>
5 00:16
6 <<< Process finished. (Exit code 0)
7 ================ READY ================
复制代码
.cmd和.bat文件也能这样执行,但不能省略扩展名。

3.2 以外部过程的方式执行程序

使用npp_run ,如下,会打开cmd窗口,Console中不会输出Process started和Process finished,NppExec不会等待外部过程的执行。

1 ================ READY ================
2 npp_run cmd
3 NPP_RUN: cmd
4 ================ READY ================
小结:NppExec能理解的只是它的内部命令和环境变量。

当输入其他命令时,比如"copy", “cmd"或"calc”,NppExec尝试将其作为子过程来执行,i.e. 它执行CreateProcess(…)直到子过程结束。
当输入类似"npp_run cmd"或"npp_run calc"时,NppExec尝试以外部过程的方式执行指定的命令,i.e. 它执行ShellExecute(…),且不关心这个过程。
4. NppExec的子菜单

Execute…:打开 "Execute…"对话框(默认热键F6)
Direct Execute Previous:执行之前的脚本(默认Ctrl+F6)
Show Console dialog:打开或隐藏Console窗口(默认Ctrl+~)
Toggle Console dialog:激活或取消激活Console窗口(依赖Console的"hide toggled Console"选项,但是找不到这个选项在哪里)
Console Commands History:Console命令历史是否可用(可用时上下键自动输入历史命令)
Console Output…:打开Console Output/Input encoding对话框,选择输入输出的编码
No internal messages:不显示命令确认等内部消息。比较如下,前面没有内部消息,后面有内部消息:
复制代码
1 ================ READY ================
2 cmd
3 Microsoft Windows [版本 6.3.9600]
4 © 2013 Microsoft Corporation。保留所有权利。
5
6 C:\Users\acton\Desktop>exit
7 exit
8 ================ READY ================
9 cmd
10 cmd
11 Process started >>>
12 Microsoft Windows [版本 6.3.9600]
13 © 2013 Microsoft Corporation。保留所有权利。
14
15 C:\Users\acton\Desktop>exit
16 exit
17 <<< Process finished. (Exit code 0)
18 ================ READY ================
复制代码
Save all files on execute:执行NppExec脚本前始终保存修改过的文件
Follow $(CURRENT_DIRECTORY):始终以当前目录执行脚本(当前目录用cd命令查看或更改,请help)
Disable command aliases:命令别名不可用(用NPE_CMDALIAS查看别名)
Console Output Filters…:显示NppExec Console Filters对话框(Shift + F6)
Advanced Options…:高级选项(可以添加菜单项,用于执行脚本)
Change Console Font…:字体
Help/Manual Help/Docs…
Help/About
5. NppExec Console

可以用菜单、快捷键和工具栏图标打开,倒数第二个图标就是(反正我的是哈…)。

高级设置中的ToolbarBtn可以选择在工具栏显示Console/Execute/Execute Previous中的一个或不显示任何图标。

主要作用:

执行命令(Enter键)
当执行内部子过程,且为控制台程序时,显示运行结果(比如Python或cmd的运行结果)
显示内部消息
help
…(有一个没看懂)
6. “Execute…”

打开方式:F6、菜单或工具栏(需要设置)。

用于执行脚本。

可以在中执行,也可以点击Save保存脚本。保存后可以在高级选项中设置为NppExec的菜单项,分配热键。 比如以下脚本:

1 // save current file
2 NPP_SAVE
3 // copy current file to C:\Backup
4 cmd /c copy “$(FULL_CURRENT_PATH)” “C:\Backup$(FILE_NAME)” /Y
首先保存当前文件,然后用cmd中的copy命令复制到C:\Backup下,其中//开始的是注释。

  1. NppExec脚本

NppExec脚本是一个命令集。

可以是NppExec的内部命令,比如"cls", “npp_save”, “npe_debuglog"等
也可以是可执行的一些外部程序或命令,比如"cmd”, “calc”, “C:\tools\tcc\tcc.exe” 。
每条命令都可以带参数。比如以下几条命令:
1 INPUTBOX “Input something:” : something
2 NPP_EXEC “script name” “param 1” “param 2”
3 cmd /c copy /?
4 “C:\tools\tcc\tcc.exe” “$(FULL_CURRENT_PATH)” -run
注意:

一条命令书写在一行中。
注释以//开始。
脚本可以保存为txt文件,用npp_exec执行。
脚本存储在插件配置目录下,该目录存储在环境变量$(PLUGINS_CONFIG_DIR)中。
保存的脚本在npes_saved.txt中,从其中可以查看脚本保存的格式。临时脚本在npes_temp.txt中。
重点是执行脚本的四种方式、两类过程(内部和外部)和脚本基础知识,下次介绍环境变量。

配置:

  1. 打开notepad++,到“插件”-> plugin manager -> show plugin manager , 找到NppExec,安装。

  2. 安装好以后, 到“插件” -> NppExec -> execute, 输入以下的内容

NPP_SAVE
cmd /k Python -u "$(FULL_CURRENT_PATH)" & ECHO. & PA

USE & EXIT
NPP_CONSOLE 0

记住,在进行此步之前,你需要把python安装目录写到系统path里,具体怎么写百度吧。。。要么也可以把上边的"python"改成具体你安装的python.exe的路径.

输入这个要保存,我把它保存为pythonScript.

  1. 你可以现在试试按F6一步执行试试,NppExec默认的console是在底下的,你可以双击它边缘的框,让他弹出来,变成习惯的cmd,反正我比较习惯这么看。

  2. 最后是设置快捷键, 打开插件->NppExec -> advanced option, 先点place to the Macros submenu, 然后点associated scripts, 找到你之前添加的"pythonScript"然后add。 关闭重启notepad++,然后到“设置” -> 管理快捷键 -> 到plugin commands里找到你创建的那个"pythonScript",给一个你喜欢的快捷键就行了。

出现:NppExec -WARNING- Console process is still running 如下图:处理办法:插件->NppExec -> Disable command ailases
运行后弹出此对话框

5.还有就是设置console字的颜色,到插件-> NppExec里有个advanced options, 可以修改不同字的颜色,这个我就不废话了。如果觉得字太小用control+鼠标滚轮吧。。。

最后: 用npp比其他的爽多了,就是感觉好像对工程不太方便。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值