再推荐一款编辑器:SciTE

标签:Python

今天又发现了一款轻巧的编辑器SciTE,支持语法高亮、自动补完、函数提示和编译运行等重要功能,甚至还有导出成PDF文档的功能,启动速度却和记事本差不多,当然最重要的原因是支持Python,所以我强烈推荐。
不过这是个面向程序员的编辑器,配置非常复杂,所以一般人就不用尝试了…

先给2张截图,这是我自己配置的代码高亮样式,应该算是清爽的吧:

自动完成和提示也很强大:


接着稍微介绍一下,SciTE是基于SCIntilla的,另几款知名的文本编辑器,如Notepad++、Notepad2、Eric3、Wing IDE和PythonWin也都是基于该库,可见其强大。
它也是跨平台的,可运行于Windows和GTK+ / Linux兼容操作系统下。

下载页面里有多种版本,我下的是Windows平台完整版的(目前是2.01版,883KB)。此外还有UPX压缩的单文件版和安装版。
这是个绿色软件,解压后运行SciTE.exe就可以启动了,不过界面是英文的,而且找不到地方设置。于是去下载语言文件,例如Chinese 1.73 (Simplified - GB2312),再重命名为locale.properties,保存到SciTE文件夹下,重启编辑器即可。

不过很快你会发现中文支持很烂,移动光标和选择文字会截断中文,实在让中文用户很头疼。这实际上是代码页的设置问题,需要手动更改配置文件。
SciTE中最重要的配置文件就是SciTEGlobal.properties了,你可以通过“选项—打开Global Options文件”来打开。
搜索code.page,很快就发现它被设为0了,也就是自动。
在它下面写上code.page=936,就可以覆盖上面的设置,设为GBK了。此外,#表示行注释,所以你也可以注释掉这行。这时就能正常支持中文了。而输出是用output.code.page=936,但一般不会出错。如果字体不正常,可以加上character.set=132试试。另外,繁体中文是950/136,日文是932/128,韩文是949/129。
不过保存文件时仍然会发现,无法保存成UTF-8格式。实际上在“文件—编码”里有编码设置,保存时会自动转换成该编码。所以只要在这改成UTF-8,就会自动保存成UTF-8格式了。
此外,打开文件时,SciTE会检查BOM来判断是否是UTF-8或UCS2编码。而如果文件头2行有# -*- coding: utf-8 -*-<?xml version='1.0' encoding='utf-8'?>,也会当成UTF-8来解码。

设置完语言后,就不妨读读SciTE文档,看看有些什么功能吧。

一开始就能看见,它能当成IDE来使用。如果安装了Python的话,写个Python文件,保存,然后按F5,就会运行了。这个快捷键和VC等IDE是一样的,多用几次就记住了;另外,切换输出窗口可用F8。
不过我在使用中发现一个问题,如果print包含非ASCII字符的unicode的话,会报UnicodeEncodeError。目前的解决办法是不使用unicode,直接使用字符串…

接着可以看到它还支持命令行参数,例如-goto:123可以跳到123行,不过一般人都习惯鼠标双击打开吧…

接下来是缓冲区,它实际上就是打开的文件,可以用F6和Shift+F6进行切换,默认可以打开10个。

然后是会话,它用于保存当前打开的文件(缓冲区)状态。可以在配置文件中设置save.session=1来启用,就相当于启动时自动载入上一次操作的文件。而save.position=1可以保存光标位置。

搜索也是支持正则表达式的,此外还有个很酷的“即输即查”功能,用过Chrome、iTunes和苹果操作系统的应该很熟悉。搜索窗口在查询后就会关闭,可以用F3和Shift+F3来进行下一次搜索。

接着是一些快捷键,稍微写些常用的:
Tab / Shift+Tab:切换缩进
Ctrl+BackSpace / Ctrl+Delete:删除单词
Ctrl+Shift+BackSpace / Ctrl+Shift+Delete:删除行
Ctrl+Home / Ctrl+End:跳转到文件头/尾
Alt+Home / Alt+End:跳转到显示行头/尾(自动换行也会产生新的显示行)
Ctrl+L:剪切行
Ctrl+Shift+T:复制行
Ctrl+Shift+L:删除行
Ctrl+T:与前一行交换
Ctrl+D:重复选择区域或当前行
Ctrl+[/ Ctrl+]:跳转到上/下一段
Ctrl+Left / Ctrl+Right:跳转到上/下一个词
Alt+Shift+上下左右:选择一块文本(还可以按住Alt,用鼠标选择)

此外还有代码折叠。按住Ctrl再点折叠处会折叠/展开所有子结点,而按住Ctrl+Shift再点折叠处可以折叠/展开所有结点。这个功能对HTML/XML也有效,感觉很方便。

再来看看配置文件,由于太多了,只挑一些常用的:
position是位置配置,其中position.maximize=1可以启动时最大化。
blank.margin.left用于控制左边距,可以设为负值来减少折叠区宽度。
line.margin.visible=1可以默认显示行号
minimize.to.tray=1设置最小化到托盘区。
toolbar.visible=1可以显示工具栏,但我是不让它显示的,基本上都用快捷键和菜单。
statusbar.visible=1可以显示状态栏,这个很有必要。statusbar.number是设置状态的种数的,如果有多种,鼠标点击时就会循环切换。statusbar.text.number,这个用于设置每种状态显示的信息,默认显示状态1。
check.if.already.open=1可以检查是否被已其他程序打开该文件。
autocompleteword.automatic=1是个很重要的选项,它会检查文件中所有存在的单词,但再次输入时,会时时提示可能的单词进行补完。
user.shortcuts和user.context.menu可以设置自己的快捷键和右键菜单,这里有命令列表
wrap=1和output.wrap=1可以自动换行,不设置的话会有很长一条滚动条。不过horizontal.scroll.width和output.horizontal.scroll.width可以设置滚动条宽度
find.files可以设置文件搜索时的默认后缀名,我当然设成*.py。
font可以进行一些字体设置,其中font.monospace是等宽字体,也是编程中最常用的字体。不过我没找到默认开启等宽的方法,只好设置这2个:font.base=$(font.monospace)和font.comment=$(font.monospace);或者style.*.32=$(font.monospace)。不过按Ctrl+F11也很快。
tabsize和indent.size是缩进大小,一般是设成4。
xml.auto.close.tags=1可以自动补完XML标签。
strip.trailing.spaces=1可以在保存时去掉行尾空格。
default.file.ext可以设置默认的文件类型,我当然是设成.py。
title.full.path=1可以在标题栏显示文件的完整路径。
menu.language和import部分是设置所需的语法文件,自己不用的语言就可以去掉。

刚才说到了自动完成,实际上它还支持函数补完和提示,不过也要配置。
常见的语言,如C有现成的API文件可以下载。
只要将其放在SciTE文件夹下,然后这样设置即可启用:api.*.c=$(SciteDefaultHome)\c.api
其中*.c表示文件后缀是.c,$(SciteDefaultHome)表示SciTE文件夹。
而Python是没有现成的文件的,但其实是最强大的:SciTE提供了一个gen_python script,运行(需要安装Python)后便会生成标准库和已安装的第三方库的API,然后像上面那样设置即可。
不过设置完成后还要会用它,输入一个函数,按(时会出现函数提示,这是可以自动做到的。但如果要补完的话,可以按Ctrl+I,然后就会出现API列表了。

最后,它还有个缩略语功能。
在abbrev.properties里输入“缩略词=完整词句”即可启用,支持\n等特殊字符。使用时按Ctrl+B即可。

顺便放上自己的SciTE配置文件(含Python的代码高亮文件,注意备份自己的设置)。

4条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?