Notepad++调用外部程序

http://blog.swanspace.org/npp_invoke_programs/

工欲善其事,必先利其器。作为一个伪码农,得心应手的代码编辑器绝对是必不可少的。尝试过各种各样的软件,目前还是偏向于小巧简洁的Notepad++。

简单说下个人对各个编辑器的感受吧(仅针对写代码而言),不喜勿喷~

  • Vim/Emacs:神器,没的说,Geek最爱。曾经也为了装逼去尝试过,结果我果然还是个标准的懒人,懒得挖掘自己的需求,懒得写脚本配置一堆东西,懒得记各种各样的组合快捷键。嘛,鼠标这种东西还是有其存在的价值的嘛。
  • VisioStudio/Eclipse:重量级IDE,用起来也非常顺手,只是毕竟是对某几个语言专门开发的,对于目前深陷Verilog泥沼中的我来说没啥用,而且最近迷上了Python好像也没这两人什么事。当然启动速度慢也是个麻烦,不过我惯用的解决Windows开机慢的绝招就是不关机,所以这个倒不重要了。
  • UltraEdit/EditPlus:貌似边上也有些用的人(突然脑海里就想到了楼sir),功能上也不差,不过我总觉得那个UI真心应该治疗一下。
  • Notepad++:本来是用来代替记事本的,打开速度快,配置项也不多,不过够用就好,反正是用着用着就喜欢上了。好像插件也挺多的不过个人用过的倒很少。
  • SublimeText:这个也挺喜欢的,默认的深色系配色很带感,功能很强,然后配置方式是直接打开自己的文本配置文件,略有种Geek的感觉啊。等以后攒点经验再点几个技能点,再来尝试这款嗯。

 

然后,起因是最近一直在用Notepad++写Python,然后每次写好或者改好后都要切到命令行去执行,实在麻烦,所以尝试了下,直接在Notepad++里面调用Python命令执行。

Notepad++的【运行】菜单下有一个“运行”命令,可以直接执行外部程序,也可以把命令保存下来并指定快捷键,方便多次使用。

“运行”命令下可以使用一系列Notepad++的内置变量,主要有:

  • $(NPP_DIRECTORY):Notepad++程序所在的文件夹路径。
  • $(CURRENT_DIRECTORY):当前文件所在的文件夹路径,如果是新建且未保存过的文件会返回空字符串。
  • $(FULL_CURRENT_PATH):当前文件的完整路径,如果是新建且未保存过的文件会返回“new 1”之类的字符串。
  • $(FILE_NAME):不包含文件夹路径的当前文件名,如果是新建且未保存过的文件会返回“new 1”之类的字符串。
  • $(NAME_PART):不包含文件夹路径和扩展名的当前文件名,如果是新建且未保存过的文件会返回“new 1”之类的字符串。
  • $(EXT_PART):当前文件的扩展名,如果没有扩展名,或是新建且未保存过的文件,会返回空字符串。
  • $(CURRENT_WORD):当前选中的字符,如果未选中任何字符则返回空字符串,如果选中了多行貌似只会返回第一行?(待考证)。
  • $(CURRENT_LINE):当前光标所在行,需要特别注意的是这个行数貌似是从0开始计数的,也就是说相比Notepad++内部显示的行号要减一。
  • $(CURRENT_COLUMN):当前光标所在列,也是从0开始计数的。

另外,使用运行命令调用外部程序时,当前路径(即Windows命令行的%cd%变量)会被设置为$(NPP_DIRECTORY),在很多时候可能需要先转换到当前文件所在的路径。

 

因为已经将Python程序所在的路径加到Path环境变量中了,于是直接在Notepad++运行命令:

1
python $(FULL_CURRENT_PATH)

但是这样会出现几个问题,一个是当前路径问题,直接运行时当前路径不是当前文件的路径,会使得相对路径不可用,另一个更为致命的问题是,Python本身需要依靠命令行来运行,上述命令只会使得黑色窗口一闪而过,啥都看不到。

由于Notepad++的运行命令不支持cd、pause等命令行指令,因此只能写一个bat脚本,迂回解决:

1
2
3
4
5
@ echo off
%~d1
cd %~dp1
%~dp0\Python3\python.exe -m cProfile %~nx1
pause

上述脚本首先更改当前路径到文件所在目录,然后调用Python来运行当前文件,最后暂停以保证命令行窗口可见。脚本中还调用了cProfile模块来观测程序的运行时间。

最后,在Notepad++中保存以下命令即可:

1
path\to\bat\Python3.bat $(FULL_CURRENT_PATH)

在Notepad++中貌似没法对已保存的运行命令进行进一步的修改。其实该配置保存在配置文件shortcuts.xml中,该文件所在路径一般为%AppData%\Notepad++,不过也有可能使用的是$(NPP_DIRECTORY)目录下的配置文件,如果在安装的时候进行了指定的话。

最后,因为兼容性的关系,我在电脑上同时安装了Python2和Python3,通过两个Notepad++的运行命令就可以非常方便地进行调用,而且现在的这种实现方式并不依托于系统的%path%环境变量,可靠性更高。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值