用好SciTE的缩写功能

66 篇文章 2 订阅
19 篇文章 0 订阅

用好SciTE的缩写功能

SciTE的这个功能比我想像的还要强大地多,几乎可以和Zen Coding相媲美了。下面介绍下它的用法,更详细的可以参考《懒人专用--用好SciTE的缩写功能这篇文章。

首先建立一个缩略词文件,比如想给HTML使用,那么可以建立一个html.properties文件,当然文件名称和后缀可以任意取,只要你看地懂就可以了。为了方便管理,可以在SciTE的目录下建立一个abbrev文件夹,专门用于存放缩略词文件。

SciTE的头部菜单选项中选择打开 User Options 文件一项,在打开的SciTEUser.properties文件的最底部加上如下代码:

abbreviations.*.html=$(SciteDefaultHome)\abbrev\html.properties

上面代码中,abbreviations.*.html代码表示该缩略词文件只对后綴名为html的文件有效;$(SciteDefaultHome)表示SciTE的安装目录;\abbrev\html.properties表示缩略词文件相对于SciTE安装目录的位置。

SciTE的缩略词规则很简单,就是:

缩略词=完整代码

现在在新建的html.properties文件中写入如下代码:

a=<a href="">|</a>

接下来打开一个后缀名为html的文件,在里面输入a,再按快捷键Ctrl+B,刚才的字母a就被替换成了<a href=”"></a>,而光标会自动定位到代码<a href=""></a>之间,也就是在上面定义的缩略词代码中|所在的位置。

 

注意事项:

缩略词表达示不允许换行

缩略词表达示不允许换行,因为SciTE是用换行来区分两个缩略词表达式的。如果想完整代码显示换行可以用\n来实现,另外可以用\t来表示缩进。如下面代码:

html:5=<!DOCTYPE HTML>\n<html lang="en-US">\n\t<head>\n\t\t<meta charset="UTF-8">\n\t\t<title></title>\n\t</head>\n\t<body>\n\t\t|\n\t</body>\n</html>

在HTML文件中输入html:5,按Ctrl+B,代码展开后是下面这样的:

<!DOCTYPE HTML>
<html lang="en-US">
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>

	</body>
</html>

缩略词表达示不能以#、空格键、tab键开头

缩略词表达示不能以#开头,这样会被当成注释忽略掉。

转义符“\”和“|”

想在完整代码里显示\,可以连续输入两个\。如:

line=\\iloveweb

展开后是\iloveweb,如果想显示两个\,就连续输入四个\,如下(以“#”开头的一行是注释):

#显示 \iloveweb
line1=\\iloveweb

#显示 \\iloveweb
line2=\\\\iloveweb

显示|的规则也一样,如下:

#显示 \iloveweb
or1=||iloveweb

#显示 ||iloveweb
or2=||||iloveweb

给缩略词取个易记易懂的名字

给缩略词取个易记易懂的名字不难,因为已经有个现成的:Zen Coding,可以参考它的写法来编写SciTE的缩略词。下面列出一部分我参考Zen Coding的代码段:

cc:ie=<!--[if IE]>\n\t|\n<![endif]-->
a=<a href="">|</a>
a:link=<a href="http://|"></a>
a:mail=<a href="mailto:|"></a>
script:cdata=<script type="text/javascript">\n//<![CDATA[\n\n|\n\n//]]>\n</script>
input=<input type="" value="|" />
input:text=<input type="text" name="|" id="" />













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的代码高亮文件,注意备份自己的设置)。
















介绍 Zen.Coding 的文章很多,真的要掌握了还需要适应一段时间。在 Scite 下一直没有  Zen.Coding 的完整实现,官方网站也只给出了一个 Abbreviations for text editor SciTE 的简单实现。

下载后按照 README 文件里的方法设置。

下面是使用 TAB 键替换 Ctrl + B 键展开缩写的 Lua 代码,放到自启动 Lua 文件里。

function MyTab()
    cp=editor.CurrentPos
    scite.MenuCommand(IDM_ABBREV)
    if cp==editor.CurrentPos then
        editor:Tab()
    end
end

 在 SciTEUser.properties 文件里要有如下设置:

command.name.49.*=MyTab
command.mode.49.*=subsystem:lua,savebefore:no,groupundo
command.shortcut.49.*=Tab
command.49.*= MyTab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值