Notepad++绝对是windows下进行程序编辑的神器之一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷键,下面对notepad++默认的快捷键做个整理(其中有颜色的为常用招数):
1. 文件相关
快捷键 | 动作定义 |
---|---|
Ctrl-O | 打开文件 |
Ctrl-N | 新建文件 |
Ctrl-S | 保存文件 |
Ctrl-Alt-S | 文件另存为 |
Ctrl-Shift-S | 保存所有打开文件 |
Ctrl-P | 打印 |
Alt-F4 | 退出程序 |
Ctrl-Tab | 文件标签跳转,跳至下一个打开文件 |
Ctrl-Shift-Tab | 文件标签跳转,跳至上一个打开文件 |
Ctrl-W | 关闭当前文件 |
Ctrl-C
Alt-Shift-方向键 或Alt + 鼠标左键
3.搜索相关
Ctrl-F
4.显示相关
定义内容
Ctrl-(Keypad-/Keypad+)或者Ctrl+鼠标滚轮
5.运行相关
F5
[转]notepad++正则表达式替换字符串详解
表达式 说明
\t 制表符.
\n 新行.
. 匹配任意字符.
| 匹配表达式左边和右边的字符. 例如,“ab|bc” 匹配 “ab” 或者 “bc”.
[] 匹配列表之中的任何单个字符. 例如,“[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意数字.
[^] 匹配列表之外的任何单个字符. 例如,“[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非数字字符.
* 其左边的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”,“be” 或者 “bee”.
+ 其左边的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”.
? 其左边的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”.
^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行.
” 仅仅匹配以 “e” 结尾的行.
() 影响表达式匹配的顺序,并且用作表达式的分组标记.
\ 转义字符. 如果你要使用 “\” 本身,则应该使用 “\\”.
例子:
原始串
str[1]abc[991];
str[2]abc[992];
str[11]abc[993];
str[22]abc[994];
str[111]abc[995];
str[222]abc[996];
str[1111]abc[997];
str[2222]abc[999];
目标串:
abc[1];
abc[2];
abc[11];
abc[22];
abc[111];
abc[222];
abc[1111];
abc[2222];
处理:
查找串:str
abc
替换串:abc[\1]
【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。
【2】正则表达式应用——数字替换
希望把
asdadas123asdasdas456asdasdasd789asdasd
替换为:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd
在替换对话框里面,勾选“正则表达式”复选框;
在查找内容里面输入“[0-9][0-9][0-9]”,不含引号
“替换为:”里面输入“[\0\1\2]”,不含引号
范围为你所操作的范围,然后选择替换即可。
实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例
上面重复使用了“[0-9]”,表示连续出现的三个数字
“\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推
“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2其它”,则替换结果为:
asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd
功能增强(by jiuk2k):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 …
大家根据需要定制
相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下
【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345”表示从行尾匹配
如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格式-删除行注释
c. 在弹出对话框里面输入要清除的行首字符,确定
【4】正则表达式应用——替换带有半角括号的多行
几百个网页中都有下面一段代码:
\n
在替换对话框启用“正则表达式”选项,这时就可以完成替换了
【5】正则表达式应用——删除空行
启动EditPlus,打开待处理的文本类型文件。
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围” 中的“当前文件”,表明对当前文件操作。
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且 以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
直接在”查找”中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符 即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行符”,插入“\n”,表示回车符。
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时 存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。
1.在汉化的时候,是否经常碰到这样的语句需要翻译:
Code:
“Error adding the post!”;
“Error adding the comment!”;
“Error adding the user!”;
如果有很多类似的文件一个一个翻译显然很累而且感觉很无聊。
其实可以这样处理,在Editplus里面用 替换 功能,在替换对话框选中“正则表达式”复选框:
查找原文件:
Code:
“Error adding ([^!|"|;]*)
替换成:
这样替换之后发生了什么?结果是:
Code:
“在增加the post时发生错误!”;
“在增加the comment时发生错误!”;
“在增加the user时发生错误!”;
ok,接下来你会怎么做?当然再替换一次把the post、the comment、the user替换成你要翻译的词。得到最后的结果:
Code:
“在增加帖子时发生错误!”;
“在增加评论时发生错误!”;
“在增加用户时发生错误!”;
2.要提取的单词在中间,比如:
Code:
can not be deleted because
can not be added because
can not be updating because
可以用这种方式:
在Editplus里面用 替换 功能,在替换对话框选中“正则表达式”复选框:
查找原文件:
Code:
can not be ([^ ]*) because
替换成:
Code:
无法被\1因为
这样替换之后发生了什么?结果是:
Code:
无法被deleted因为
无法被added因为
无法被updating因为
其余步骤如上。
在汉化量很大而且句式比较单调的情况下对效率的提高很明显!
解释一下:([^!|"|;]*) 的意思是 不等于 ! 和 ” 和 ; 中的任何一个,意思就是这3个字符之外的所有字符将被选中(替换区域);
\1 即被选中的替换区域所在的新位置(复制到这个新位置)。
3.经常手工清理一行一行地删除文本文件里面的空白行,其实可以交给Editplus更好的完成,在Editplus里面用替换功能,在替换对话框选中 “正则表达式”复选框:
查找原文件:
Code:
^[ \t]*\n
替换部分为空就可以删除空白行了,执行一下看看:)
abandon[2''b9nd2n]v.抛弃,放弃
abandonment[2''b9nd2nm2nt]n.放弃
abbreviation[2bri:vi''ei62n]n.缩写
abeyance[2''bei2ns]n.缓办,中止
abide[2''baid]v.遵守
ability[2''biliti]n.能力
able[''eibl]adj.有能力的,能干的
abnormal[9b''n0:m2l]adj.反常的,变态的
aboard[2''b0:d]adv.船(车)上
1.
查找: (^[a-zA-Z0-0\-]+)(
+)(.*)
替换: @@@@@”\1″,”\2″,”\3″,
效果:
@@@@@”abandon”,”[2''b9nd2n]“,”v.抛弃,放弃”,
@@@@@”abandonment”,”[2''b9nd2nm2nt]“,”n.放弃”,
@@@@@”abbreviation”,”[2bri:vi''ei62n]“,”n.缩写”,
@@@@@”abeyance”,”[2''bei2ns]“,”n.缓办,中止”,
@@@@@”abide”,”[2''baid]“,”v.遵守”,
@@@@@”ability”,”[2''biliti]“,”n.能力”,
@@@@@”able”,”[''eibl]“,”adj.有能力的,能干的”,
@@@@@”abnormal”,”[9b''n0:m2l]“,”adj.反常的,变态的”,
@@@@@”aboard”,”[2''b0:d]“,”adv.船(车)上”,
2.
查找: \n
替换:
注: 要次替换内容为空
效果:
@@@@@”abandon”,”v.抛弃,放弃 ”,@@@@@”abandonment”,”n.放弃 ”,@@@@@”abbreviation”,”n.缩写 ”,@@@@@”abeyance”,@@@@@”abide”,”v.遵守 ”,@@@@@”ability”,@@@@@”able”,”adj.有能力的,能 干的 ”,@@@@@”abnormal”,”adj.反常的,变态的 ”,@@@@@”aboard”,@@@@@”abolish”,”[2''b0li6]“,”v.废 除,取消”,@@@@@”abolition”,”[9b2''li62n]“,”n.废除,取消”
3.
查找: @@@@@
替换: \n
效果:
“abandon”,
“abandonment”,
“abbreviation”,
“abeyance”,
“abide”,
“ability”,
“able”,
“abnormal”,
“aboard”,
“abolish”,”v.废除,取消”,
Zen Coding 让 Notepad++ 代码书写健步如飞(XML CSS应用)
Notepad++ 是一款无比轻巧便捷的代码编辑工具。它无可挑剔的启动速度,优秀的语法高亮,干净整齐的代码缩进,便捷的括号高亮匹配赢得了无数人的喜爱。
但,不知道有多少同学跟我一样,在coding 时被 Notepad++ 粗陋的代码自动补全折磨的体无完肤(Notepad++那甚至不能叫自动完成)。虽然无比羡慕诸如Dreamweaver之类的代码自动完成,但固于上述提到的几点Notepad++的优秀之处,纠结中毅然依旧坚守Notepad++。而 Zen Coding 的横空出世,总算终结了这种纠结,让我们得以以一种无比帅气的方式书写代码。
先看一段演示视频吧(建议反复观摩,其中演示了 Zen Coding 的各种典型用法)
http://http://v.youku.com/v_show/id_XMTgxNTMzMjI0.html
Notepad++安装 Zen Coding 插件
下载Zen.Coding-Notepad++.v0.6.1.zip解压
将解压所得的文件放入 Notepad++ 程序的安装目录下的plugins文件夹。
重启Notepad++,即可开始使用 Zen Coding。
Zen Coding 用法
首先,我们先学习一下 Zen Coding 的缩写规则 (其实就是CSS选择器)
- E
元素名 (div,p); - E#id
带id的元素 (div#content,p#intro,span#error); - E.class
带class的元素 (div.header,p.error.critial). id 和 class 可以连写,如: div#content.column.width; - E>N
子元素 (div>p,div#footer>p>span); - E+N
兄弟元素 (h1+p,div#header+div#content+div#footer); - E*N
多项元素 (ul#nav>li*5>a); - E$*N
带序号的元素 (ul#nav>li.item-$*5);
接下来,我们来熟悉 Zen Coding for Notepad++ 的快捷键,也是 Zen Coding 的精髓
【Ctrl+E】 展开缩写(Expand Abbreviation)
比如写下div#page>div.logo+ul>li*3>a
,按一下 Ctrl+E,立马就可以转化成:
<div id="page"> <div class="logo"></div> <ul id="navigation"> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </div>
【Ctrl+Shift+A】 嵌套代码(Wrap with Abbreviation)
比如,我们想让写好的<p>hello world</p>
,想在外层再套一个div,只需按下【Ctrl+Shift+A】,在弹出的对话框中输入:div.wrap
,回车。此标签就能自动被嵌套。
甚至,我们可以玩的更炫一些,写好三行列表内容,全裸,此时没有任何标签。只需按下【Ctrl+Shift+A】,输入ul>li*
,回车。这三行内容就能自动被ul li 嵌套起来。(不仅限于 li 列表哦)
【Ctrl+Shift+D】选中代码块(Balance Tag Inward/Outward)
选中当前光标所在的代码块,长按可依次选中父块
【Ctrl+Alt+[,Ctrl+Alt+]】 转到上一个/下一个编辑点(Go to Next/PrevIoUs Edit Point)
按下可以依次跳到可输入内容的编辑点,省去了不停按方向键或鼠标来定位编辑点的麻烦。
【Ctrl+Alt+M 】合并行(Merge Lines)
将选中的多行代码合并为一行。压缩css、js代码为一行时,这个很方便。Ctrl+A,然后Ctrl+Alt+M,两下即可搞定,免去了动用压缩工具的麻烦。(当然这个只是简单地将代码合并为一行,并不能做更深入的代码压缩)
【Alt+/ 】添加、移除注释(Toggle Comment)
注释掉光标所在的代码块 (Notepad++ 自带的Ctrl+Shift+Q也可以用来注释代码)
【Ctrl+’ 】空标签转化(Split/Join Tag)
比如将<div class="test"></div>
转化为<div class="test"/>
, 反向亦可。
【Ctrl+Shift+’ 】移除标签(Remove Tag)
比如将<div class="test">hello world</div>
移除div标签,留下hello world。
好了,目前 Notepad++ 的 Zen Coding 只有这几个快捷键,下面介绍一些常用到的缩写
不知道大家新建一个html 页面时,是如何输入文档声明和 head 那一坨东西的。现在有了Zen Coding,只需输入几个字母就能立马生成相应文档声明的 html 结构框架
html:4t (HTML 4.01 Transitional) html:4s (HTML 4.01) html:xt (XHTML 1.0) html:xs (XHTML 1.0 Strict) html:xxs (XHTML 1.1) html:5 (HTML5)
head 中常用到的一些缩写
Meta:utf,Meta:compat style,link:css,link:print,link:favicon,link:RSS,script,script:src
body 中会常用到的缩写
诸如div,p,a,ul,ol,input:t,input:r
等等
其中,类似 ul+ 的形式可展开为(+号可自动生产默认的子元素)
<ul> <li></li> </ul>
类似的还有ol+,dl+,table+,tr+,select+,map+,optg+
等
IE 条件注释:
cc:ie6,cc:ie,cc:noie
下边是一些典型用法示例:
div#name.one.two => <div id="name" class="one two"></div>
[title="Hello world" rel] => <a href="" title="hello world" rel=""></a>
td[colspan=2] => <td colspan="2"></td>
li.item$*3 => <li class="item1"></li><li class="item2"></li><li class="item3"></li>
li.item$$$ => <li class="item001"></li>
li.item-$-content*3 => <li class="item-1-content"></li><li class="item-2-content"></li><li class="item-3-content"></li>
#content>.section => <div id="content"><div class="section"></div></div>
如果你写了这么一串出来,那么一个页面的基本结构就出来了:
div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer
此外【|e】 可以输出转义字符
<div id="wrap"> <div class="content"> <p></p> </div> </div>
div#wrap>div.content>p|e|e
可转化为:
&lt;div id="wrap"&gt; &lt;div class="content"&gt; &lt;p&gt;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;
以上介绍的仅仅是有关HTML的缩写,CSS的缩写就更多了,建议查看Zen Coding 小抄,学习CSS 的 Zen Coding 方式
自己编写缩写规则
plugins\NppScripting\includes\Zen Coding.js
在其中对应位置仿照已有规则添加自己的缩写规则。也可以修改缩写规则更符合自己的习惯。
即使你不编写自己的缩写规则,也强烈建议你阅读此文件,熟悉 Zen Coding 自带的一些缩写规则,让代码书写更加事半功倍~
最后,Zen Coding 不仅有Notepad++版,Aptana、UltraEdit、Dreamweaver也有相应版本,速速前往官方下载页查找是否有你常用的编辑器的Zen Coding插件吧~
——————————————————————————————
Notepad++插件
附带的Plugin Manager插件
http://www.brotherstone.co.uk/npp/pm/
XML Tools
这个插件是包含了很多XML编辑方面的实用工具。比如XML语法规则检查,XML Schema和DTD确认,XML标签自动关闭,当前XML路径,XML和Text转换,注释和非注释切换等等。
Insertion
这是一个主要用于演示的插件,适合初次开发者用于实例学习。它的功能是插入当前文档的名称和日期时间,以及自动关闭html/XML标签。
Doc Updater
每三秒自动更新你Notepad++中打开的文档。
TextFx
TextFx是预装在Notepad++中的一个插件,功能非常强大,包括各种代码的转换、插入、优化、格式化和验证等等,能很方便的提高你的工作效率。
SearchInFiles
QuickText
一个非常出色的代码片段管理器,支持Notepad++所支持的所有语言类型。
Spell-checker
拼写检查工具. 需要先安装Aspell。
NppExec
使用NppExec插件,你可以不需要离开Notepad++即可运行你的命令行或保存脚本,大大提高你的效率。
Compare Plugin
一个非常实用的工具,可以用来比较两个文件不同之处.
DBGP plugin
你可以使用这个插件把你的Notepad++变成一个PHP IDE。
MultiClipboard
FTP_synchronize
一个集成于Notepad++的FTP客户端。
Gmod 10 Lua Syntax Highlighter
Notepad++的一个语法高亮插件。
SpeechPlugin
文本转语音朗诵插件。
Log plugin
这个插件可以让Notepad++实现Windows内置记事本的一个功能 : 当文件为.log,每次打开后可以附加日期和时间。
下面介绍Notepad++的svn插件的安装及使用。
如图12,点击Plugin --> Plugin Manager --> Show Plugin Manager
打开后,在“Available”页找到“Subversion”,然后点击“Install”,如图13所示:
安装成功后会在Plugins菜单下出现"Subversion"子菜单。
打开之前checkout下来的任一文件,编辑完成后,
点击Plugins --> Subversion --> Commit File(或使用快捷键Ctrl+Alt+A)
输入Log Message,点击“OK”即可提交。