`

懒人专用--用好SciTE的缩写功能

阅读更多

懒人专用--用好SciTE的缩写功能

 

转自http://bbs.ctex.org/viewthread.php?tid=43620

 

版面上用SciTE的人应该不少吧,这个编辑器一个相当强大的功能是他的缩写(Abbreviation)展开功能。简单说,就是把常用的代码段、单词甚至句子和环境都定义成几个字母的缩写,打入这几个字母后ctrl+B就自动展开。开始的时候也觉得是挺平常的功能,但后来才知道简直就是Life saver。

1. 使用abbrev.properties文件
首先我想说当时为了用成这个功能就花了不少周折。我在SciTE的菜单中选择open abbreviations file,里面是空的,写了几个保存。发现没有写到SciTE目录下的abbrev.properties文件中去,满电脑找才知道写到 documents and settings里面去了。这个问题很多人碰到,作者在邮件列表中给出一个命令行的解决方法,也可以写成批处理。

set SCITE_HOME=D:\Program Files\Scintilla Text Editor\
start Scite.exe %1

存成start_SciTE.bat即可。用Total Commander的朋友可以把这个图标放在工具栏上,然后把文件往上拖就能用SciTE打开。SciTE关联.tex文件后,如果用双击启动tex文件,则要在双击tex前保证SciTE是用批处理开着的,否则SciTE还是会用doc&settings目录下的设置,包括还原上次打开的文件(session restore)。我干脆就把这个批处理加入到启动菜单,开机就开着SciTE。

然后,用SciTE打开abbrev.properties,输入你想要的缩写,规则很简单: abbreviation=expansion,例如

ltx=LaTeX

2. 定义缩写名
关于缩写名(abbreviation):喜欢在等号边上加空格的朋友注意了,等号的左边最好不要有空格,否则要输入ltx加上相应的空格才能展开。等号的右边也是一样,有空格就会展开出空格。缩写名中不能用#开始,否则注释掉了,但后面可以;不能用空格和tab开始,缩写名不能有=号,因为只接受第一个=号,后面都会认为是展开式中的=号。如果缩写名重名,后面出现的优先。
3. 定义展开式
关于展开式(expansion):展开式的书写方式支持标准的转义符--反斜杠'\',比如

up=\\usepackage{}

即:两个连续的反杠输入一个反杠。展开式的书写方式支持一个光标定位符--竖线'|',这样展开后光标会留在这个位置,比如

up=\\usepackage{|}

这样你可以很方便地马上输入宏包名称。要输入一个真正的竖线,连续输入两个竖线'||'即可,例如c语言中的或逻辑

or=||||

展开式不允许回车换行,但转义符中的\n, \t都是有效的,所以换行和制表位都能轻松输入。例如c语言的if语句:

i=if (|) {\n\t\n}

表示展开后光标在小括号里,下面自动把大括号排版并且加入了一个tab。这在写多重循环的时候非常有用,你会发现只要用缩写功能,下面的右大括号都会自动地找到缩进位置。
这几个功能结合着用,可以写出相当复杂的环境,例如我的subfigure环境:

sbf=\\begin{figure}[!htb]\n\t\\centering\n\t\\subfigure[|]{\t % Caption of subfigure in []\n\t\\label{}\t % Label of subfigure in {}\n\t\\includegraphics[width=0.45\\textwidth ]{}}\n\t\\subfigure[]{\n\t\\label{}\n\t\\includegraphics[width=0.45\\textwidth ]{}}\n\t\\caption{}\t % Caption of figure\n\t\\label{}\t % Label of figure\n\\end{figure}

展开后的效果是:

  1. \begin{figure}[!htb]
  2.     \centering
  3.     \subfigure[]{     % Caption of subfigure in []
  4.     \label{}     % Label of subfigure in {}
  5.     \includegraphics[width=0.45\textwidth ]{}}
  6.     \subfigure[]{
  7.     \label{}
  8.     \includegraphics[width=0.45\textwidth ]{}}
  9.     \caption{}     % Caption of figure
  10.     \label{}     % Label of figure
  11. \end{figure}
复制代码

不但自动插入代码,还把注释原汁原味地加上,因为我老是要去查subfigure里面的中括号写什么,大括号写什么。

(我没尝试展开式最长能多长,但如果你想试试把你常用的导言区全部定义成一个展开式,go for it !!) -- 经过测试,真的可以!只要花时间,连文档模板都可以写出来,省得学写cls文件。
4. 多重展开
还有更有趣的,缩写功能支持多重展开!比如,LaTeX的手动输入要按三次shift,十分麻烦,定义一个ltx=LaTeX就省事了,而LaTeX logo的代码是\LaTeX,并且为了保证不吞掉后面的空格,最保险的写法是\LaTeX{},真不是一般的麻烦,这时可以再定义一条LaTeX= \\LaTeX{},那么,在平时需要LaTeX这五个字母的时候,ltx后按一次ctrl+B,在需要输入logo的时候,ltx按两次ctrl+B就OK了!像有一些关键字一般要切换字体来输入,也可以这样:

mt=MATLAB
MATLAB=\\textsf{MATLAB}

再举个例子,section, subsection, subsubsection这三兄弟可以用多重展开这样写

sec=\\section{|}
section{=subsection{
subsection{=subsubsection{

然后输入sec,按一下ctrl+B出来section,两下出subsection,三下出subsubsection,挺俏皮的……
5. 追加展开
下面的追加展开功能也让人倾倒。比方说经常要给一段文字/代码什么的两边加括号,SciTE的括号补齐功能本来是好功能,这时反而成了累赘:在左边补开括号后要按del键删掉自动补上的那个闭括号,然后光标移到最后去加闭括号。SciTE支持选定这部分文字后按ctrl+shift+R打开缩写输入框,例如我的一对中括号是这样的:

ac={|}

那么,我选定文字后ctrl+shift+R再输入ac回车,括号就加上了。也就是说,选定的文字会替换竖线.
6. 合理定义缩写名
根据熵编码原理(笑),建议最常用的编最短的码,所以我figure环境就一个f:

f=\\begin{figure}[!htb]\n\t\\centering\n\t\\includegraphics[width=\\textwidth ]{|}\\\\\t % e.g.,[scale=0.75], [width=0.75\\textwidth ]\n\t\\caption{}\n\t\\label{}\n\\end{figure}

因为只要你不按ctrl+B就不会展开,就算不小心按出来了,ctrl+z马上会把展开式还原成缩写名。而且我还发现,在出现一个缩写名包括在另一个缩写名中的情况时,SciTE用的是贪婪匹配(SciTE说明文档中的说法不对)。SciTE帮助文档说,如果你定义ring和gathering两个缩写名,那么在输入gathering后按ctrl+B,只会按ring来展开,事实上是按gatherring来展开的,也就是说,在按下ctrl+B的时候,SciTE从光标处往前查找,一直匹配到abbrev文件中最长的那个缩写名并展开,并且这与缩写名的顺序无关,这个设置是相当好的(估计是后来改了,但帮助文档没改)。不过,也可以养成让缩写名完全不互相包含的习惯,例如,section, subsection, subsubsection,我原来是定义成sec, ssec, sssec,这样一个包含一个如果你不放心的话(其实没问题),不如就改成s0, s1, s2(数字表示有几个sub)。
7. 根据文件类型定义单独的缩写文件
当你开始“滥用”缩写后,你会发现冲突得厉害,但又不想把缩写名复杂成诸如for@c, for@matlab这样怎么办?SciTE支持每个文件类型单独一个缩写文件。例如,在matlab.properties最后加上
abbreviations.$(file.patterns.matlab)=$(SciteUserHome)/abbrev_matlab.properties
再新建一个abbrev_matlab.properties文件放在根目录下,就可以在打开matlab文件后,用菜单'options - open abbreviations file'来打开独立的缩写文件进行编辑。保存后不用重启SciTE立即生效。那么,在abbrev_matlab.properties里面写 for=for i=|\n\t\nend,在abbrev_cpp.properties里面写for=for(i=0;i<|;i++){\n},这样你只要记一个for就ok了。

最后,警告:很容易中毒,现在我在这里回帖的时候经常想着缩写&展开....

分享到:
评论

相关推荐

    scite-zotero-plugin:scite zotero插件

    这是由开发的Zotero插件,因此您可以使用我们的信息来丰富您的图书馆。 当前,它可以让您做两件事: 根据我们的Smart Citation数据查看每篇论文的分类统计轻松转到站点报告页面(见下文)智能引文分类统计一旦安装...

    scite-ru-src:给scite-ru新增设置行间距功能

    给scite-ru添加新增设置行间距功能。 ##关键代码 在/src/scite/src/SciTEProps.cxx中添加如下内容: int iAscent = 0; int iDescent = 0; int lineSpacing = props.GetInt("line.spacing", 2); if(lineSpacing ...

    Scite编辑器(改进版)

    该版本SCITE由2.24版本的源代码修改而来,以提高工作效率。 1、该版本SCITE将“TOOL”栏名称修改为“生成”,该栏中添加独立的清理命令,因此在配置中有command.clear.*.* 2、增加“调试”栏,该栏增加独立的调试...

    scite-3.0.4.msi

    scite-3.0.4.msiscite-3.0.4.msiscite-3.0.4.msi

    SciTE系列SciTE中文使用教程-寂寞轩精品教程

    SciTE系列SciTE中文使用教程-寂寞轩精品教程

    SciTe -- Corder Editor --

    一款opensource的编辑器。具有语法加亮、自动完成等coder常用功能,以及极高的定制能力。小巧,可靠。 http://www.scintilla.org/SciTE.html

    scite-3.2.0.msi

    自动化测试所需,scite-3.2.0.msi;

    AHK快餐店_懒人包

    本教程包括三部分内容 1.教程——AHK 快餐店.chm 2.开发工具——SciTE.exe 3.一系列已经写好的autohotkey脚本例子——文中脚本

    SciTE 3.10 配置文件

    SciTE3.10的配置文件,转为Python打造,在Linux上完美运行,本配置的字体为Monaco,需要手动安装,下载地址:...(在默认用户下,配置文件的存放地址为:/usr/share/scite目录下)

    php编辑器--SciTE

    SciTE,它免费,它开源,它小巧,它强大,一个字:趁手 可以自己配置,支持自动联想、折叠、高亮显示,支持中文 需要GCC编译

    Scite仿vim下desert配色

    但是非常喜欢他的desert配色,对眼睛好。。 所以这两天自己摸索着终于在scite下做了高仿scite的配置。。有兴趣的可以下了试试看。 ps:此修改仅针对lua,请先安装lua for windows,然后将附件文件覆盖至 ../lua/...

    Scite Final for Programmer V2010.1.23(开发者的文本编辑器)

    开发者的文本编辑器, 支持c,c++,python的源代码语法高亮,函数自动完成,代码的单步调试…… 整合了scite, scite-ru, scite debug等等的功能,是开发人员理想的可替代记事本的理想编辑器。 更多意想不到的功能参考...

    scite 中文补丁

    scite 中文补丁 放在安装目录下 scite 中文补丁 放在安装目录下

    写脚本用SciTE

    写脚本用SciTE 游戏脚本编辑。dat

    Scite开源的文本语言编辑器v4.1.6绿色免费版

    SciTE 绿色小巧,多标签界面,支持40多种语法高亮及高亮导出、代码折叠、自动完成、编译运行等功能,高度可定制性,很好用。 缺点是,SciTE 在设置好中文编码后的 Tab 距离无法精确等于两个汉字的间距;打开大型文件...

    SciTE 1.77 中文版.rar

    SciTE 是个开源的优秀且小巧功能强大的编辑器!它支持代码高亮、自动完成、代码折叠、括号匹配、自定义模块等! 它几乎可以用到目前任何的主流语言上面,而且还支持众多的配置文件的高亮折叠,突出等效果!如 ...

    SCITE FOR JAVA(已经配置好颜色)

    自己配置好颜色的的scite1.76版,包含各种api,括号补齐,段落上下移动等插件 仿GVIM的配色方案

    scite源代码 带scintilla

    scite 源代码 带scintilla

    scite 2.24

    具体介绍看 http://code.google.com/p/scite-cpp-pas/

    SCITE4AHK小改进整合中文版

    基于最新的scite4ahk做了些许修改的一个版本。 必须自行安装最新版的AHK,目前是1.1.13.1。然后解压到AHK的安装目录。比如,AHK安装目录是C:\Program Files\AutoHotkey,那么就在这个目录解压。这样才能正常运行...

Global site tag (gtag.js) - Google Analytics