使用Python扩展NotePad++

要使用Python扩展NotePad++,首先需要为NotePad++安装Python Script插件,NotePad++插件的安装方法可以参考这里

安装了Python Script插件后,在菜单的Plugins下就会看到Python Script菜单了。

Python Script介绍

点击Plugins->Python Script->New Script菜单,打开的目录就是用户的Python脚本存放的目录。将Python脚本放到该目录下后,在Python Script下的Scripts目录下将出现与Python脚本同名的菜单,点击该菜单即可执行对应的Python脚本。
例如,我在该目录下放置了两个脚本:

则在Scripts目录下为:

点击Show Console可以打开Python的控制台,里面会显示使用的Python的版本号,Python脚本可以输出信息到控制台中,后面将详细介绍。
Context-help是Python Script的帮助文档,包括了Api的介绍,后面将经常用到。

Npp模块介绍

Npp模块包含了notepad、editor和console对象,这些对象用于操作Notepad++,notepad对象是Notepad类的实例,editor是Editor类的实例,console对象是Console类的实例。
在startup.py脚本中已经引入了Npp模块:

from Npp import *

由于startup脚本和你的脚本在同一个命名空间下,在你的Python脚本中可以直接使用它们,在后面的例子中会具体看到。
下面对Npp中的对象做一个简单介绍,更详细的接口参考Context-help。

console对象

Console可以打开控制台,console对象就是用于操作该控制台窗口,你能显示或者隐藏控制台、清除控制台内的内容、输出信息到控制台。console还支持运行一个命令并将命令结果输出到控制台,这样,你能用Python Script调用你的编译器,或者运行任何命令行工具。
下面是一个简单的例子,显示控制台,并打印信息:

console.show()
console.write("Hello,world!")

将上面的脚本保存到指定目录,并在scprits菜单下执行该脚本,就会自动打开控制台,并在控制台中输入“Hello,world!”,即下面的效果:

notepad对象

notepad对象就代表了Notepad++自身,可以使用notepad对象打开和保存文件、选择不同的tab、转换格式、运行插件命令等。
下面是一个例子,如果你编辑的是以“.log”结尾的文件,在该文件保存时,将自动在文件结尾添加时间戳:

import datetime

def addSaveStamp(args):
	if notepad.getCurrentFilename()[-4:] == ‘.log‘:
		editor.appendText("File saved on %s\r\n" % datetime.date.today())

notepad.callback(addSaveStamp, [NOTIFICATION.FILEBEFORESAVE])

notepad的callback方法就是注册一个时间的回调监听,事件类型在枚举NOTIFICATION中定义。
如果你想要取消一个注册的监听,则通过下面的方法:

#取消所有的注册监听
notepad.clearCallbacks()
#取消针对某些事件的注册监听
notepad.clearCallbacks([NOTIFICATION.FILESAVING, NOTIFICATION.FILESAVED])
#取消指定函数的监听
notepad.clearCallbacks(addSaveStamp)
#取消指定函数对某些事件的监听
notepad.clearCallbacks(addSaveStamp, [NOTIFICATION.FILESAVED])

editor对象

editor对象对应Notepad++的文本区域,提供了一些方法帮助操作数据,其中很多方法直接使用Python也可以实现,editor对象提供这些方法只是为了简化操作。
下面是一个简单的例子,找到当前打开的文件中以‘#‘开头的行,删除这些行,并保存文件:

for i in range(editor.getLineCount() - 1, -1, -1) :
	line = editor.getLine(i)
	if line.startswith(‘#‘):
		editor.gotoLine(i)
		editor.lineDelete()
notepad.save()

脚本从最后一行开始向前遍历,找到以‘#‘开头的行就将其删除,最后保存文件。这段脚本的问题是如果文件没有保存过,则会弹出一个文件保存对话框。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 21:26:24

使用Python扩展NotePad++的相关文章

python扩展实现方法--python与c混和编程

Reference: http://www.cnblogs.com/btchenguang/archive/2012/09/04/2670849.html python 头文件在的位置:/usr/include/python2.7                                  /usr/local/include/python2.7 前言(更新:更方便易用的方式在http://www.swig.org/tutorial.html) 大部分的Python的扩展都是用C语言写的,

vs2013在图像处理中的应用(7):开发Python扩展

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 很久没有摸图像处理的东西了,近期刚好需要有此需求,希望能够有一个比较好用的开发环境.在学校的时候做图像处理一直用的是matlab,不过现在正好在做VELT的开发,尝试用vs2013+python构造一个适合于自己用的开发环境. 在图像处理中,虽然已经可以用python操纵opencv完成一些算法,但总免不了需要自己写一

window下python 扩展库安装 使用第三方镜像源

0.前言 由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下运行ez_setup.py 安装easy_install,可能遇到下图这样尴尬的情况. 图1 运行ez_setup.py失败 遇到这种问题可以”转战“国内的第三方镜像,问题便可迎刃而解.例如豆瓣镜像——http://pypi.douban.com/simple/ 1.安装easy_install 先安装ea

python基础:python扩展包的安装方式

python扩展包有三种安装方式: 1. pip安装方式.python3默认自带pip,无需另外安装:在python2.7版本上默认为easy_install安装工作进行安装,如果需要使用pip安装,需要自行下载安装(可以从http://www.pip-installer.org网站下载). 2. 系统自带的包安装管理工具. 3. 从源代码安装. 使用pip安装:在command命令行中输入:pip install 包名,例如:pip install flask 使用pip安装指定版本:在com

监控开发之用python扩展dstat插件自定义实时监控

dstat是一个python开源的实时监控工具,一般是用来做系统性能监控的.咱们这里只是提他的自定义插件开发,用来打造自己的dstat. 有朋友可能还没清楚是啥意思, 咱们查看系统的状体状态有人喜欢用vmstat,也有人喜欢用dstat.相比来说dstat的功能模块更全一点是,这里还只是说查看系统性能方面的 !   如果想一边查看,系统的各方面性能指标,还想看你应用的一些个负载相关,比如某个程序的负载,mongodb的锁lock百分比,mysql连接数...   懂了吧 ! 下面是dstat的插

python扩展实现方法--python与c混和编程 转自:http://www.cnblogs.com/btchenguang/archive/2012/09/04/2670849.html

前言 需要扩展Python语言的理由: 创建Python扩展的步骤 1. 创建应用程序代码 2. 利用样板来包装代码 a. 包含python的头文件 b. 为每个模块的每一个函数增加一个型如PyObject* Module_func()的包装函数 c. 为每个模块增加一个型如PyMethodDef ModuleMethods[]的数组 d. 增加模块初始化函数void initMethod() 3. 编译与测试 a. 创建setup.py b. 通过运行setup.py来编译和连接你的代码 c.

.windows安装使用这些偏底层的Python扩展太

.windows安装使用这些偏底层的Python扩展太不爽了,怎么彻底解决 error: Unable to find vcvarsall.bat呢? 1.不要按网上说的,安装MinGW,然后在“..python安装路径...\Lib\distutils”下新建一个文件distutils.cfg,在这文件里面指定编译器为mingw32 如: [build] compiler=mingw32 原因是什么,可以百度一下mingw是什么,毕竟不是GCC,又不如VC接windows的地气,编译出来的东西

windows下Python扩展问题error: Unable to find vcvarsall.bat

由于对于Windows下Python扩展不熟,今天遇到一个安装问题,特此做个tag.解决方式在stackoverflow上,网址例如以下: http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat

windows编译python扩展Unable to find vcvarsall

在windows平台上安装比如twisted,gevent时会报出该错误,在网上找了一些解决办法大多都是说将编译器修改为mingw32,而我觉得此办法稍显麻烦,刚好电脑上安装有VisualStudio,找了一圈发现只需设置环境变量即可,此法正合我意. 操作步骤如下: 打开Visual Studio工具中的Visual Studio 命令提示 Python 2.7 会搜索 Visual Studio 2008.如果你电脑上没有这个版本的话,比如: * Visual Studio 2010,在cmd