﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-tqsheng-随笔分类-slickedit</title><link>http://www.cppblog.com/tqsheng/category/18605.html</link><description>go.....</description><language>zh-cn</language><lastBuildDate>Tue, 16 Oct 2012 18:12:14 GMT</lastBuildDate><pubDate>Tue, 16 Oct 2012 18:12:14 GMT</pubDate><ttl>60</ttl><item><title>slickedit</title><link>http://www.cppblog.com/tqsheng/archive/2012/08/24/188110.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Fri, 24 Aug 2012 02:27:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/08/24/188110.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/188110.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/08/24/188110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/188110.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/188110.html</trackback:ping><description><![CDATA[<a href="http://www.cnblogs.com/russinovich/archive/2011/04/20/2023005.html">http://www.cnblogs.com/russinovich/archive/2011/04/20/2023005.html</a>&nbsp;<img src ="http://www.cppblog.com/tqsheng/aggbug/188110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-08-24 10:27 <a href="http://www.cppblog.com/tqsheng/archive/2012/08/24/188110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SE的按需显示----强啊，赞一个</title><link>http://www.cppblog.com/tqsheng/archive/2012/07/17/183868.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Tue, 17 Jul 2012 04:21:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/07/17/183868.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/183868.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/07/17/183868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/183868.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/183868.html</trackback:ping><description><![CDATA[<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; text-align: left; color: #454545; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; background-color: #cfcfca; "><h2>SE的按需显示----强啊，赞一个</h2><h3>2006-06-02</h3><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; float: right; color: #444444; ">Tag：<a href="http://birdnest.blogbus.com/tag/SlickEdit%E4%BD%BF%E7%94%A8%E7%82%B9%E6%BB%B4/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; color: #444444; text-decoration: none; ">SlickEdit使用点滴</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; clear: both; "></div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; line-height: 20px; color: #454545; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #cfcfca; "><p style="margin-top: 0px; margin-bottom: 15px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; line-height: 21px; "><a href="http://creativecommons.org/licenses/by/3.0/deed.zh" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; color: #87b902; text-decoration: none; ">版权声明</a>：转载时请以超链接形式标明文章原始出处和作者信息及<a href="http://bangzhuzhongxin.blogbus.com/logs/11205960.html" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; color: #87b902; text-decoration: none; ">本声明</a><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><a href="http://birdnest.blogbus.com/logs/2626856.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; color: #87b902; text-decoration: none; ">http://birdnest.blogbus.com/logs/2626856.html</a><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /></p>今天心情好，再加多一篇：<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />读过复杂代码的人都有这种体会：如果能够把一个函数或者一个文件里面已经看过的，或者不重要的部分隐藏起来，这样整个函数（文件）的结构就会看得更清晰，读起来也就更加容易。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />SourceInsight号称代码查看之王，却没有这个功能，UE也是从11版以后才提供的。不过SE不仅有这个功能而且非常之强大，UE的那些在它面前只能算小儿科了。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />1. 隐藏某个大括号内的内容<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />这个UE是有的，SE中的操作为：将光标放到所需隐藏的大括号内的任意位置，然后选择菜单View-&gt; Hide Code Block即可。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />2. 隐藏选中的某个区域<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />这个UE也是有的，SE中的操作为：先选取一块区域，然后选择菜单View-&gt; Hide Selection<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />3. 隐藏注释内容<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />良好的注释虽然好，不过有时候太多的注释也会影响查看，让我们把它藏起来先。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />UE也有这个，不过它的这个功能和它隐藏大括号是很类似的，那就是只能隐藏/*&#8230;.*/的多行注释，对于连续的//单行注释就不成了，呵呵<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />SE就可以Handle这个啦，对于不论哪种方式的注释，都可以采用隐藏大括号的方法来隐藏，而且更加强悍的是，它可以一次性隐藏所有注释而不影响其他的查看，这个UE就只能流口水啦，呵呵<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />隐藏所有注释的方法：选择菜单View-&gt; Hide All Comment<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />4. 函数头显示<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />如何轻松快速的在文件里面找到所需要的函数呢，当然是把所有的函数头列在那里让你挑啦。UE里面只能用&#8220;全部折叠&#8221;来勉强实现，但是还有很有多#define，全局变量，//的注释等等残留在那里，实在是。。。。。。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />SE的函数头显示功能这时可就大派用场了，选择菜单View-&gt; Function Heading，看看，<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />除了函数头以外，什么都没有了，干干净净，所有的函数实在是一目了然啊。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />5. 有选择的显示<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />最后再来说说SE独一无二的也是最强大的功能Selective Display，定制显示内容。呵呵，看名字是不是就觉得很强呢？<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />选择菜单View-&gt; Selective Display出现如下界面<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><img src="http://aycu28.webshots.com/image/1187/1296991777247730720_rs.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " alt="" /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />这里列出了6种可选择的显示方式，我们一种种来：<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8544;. Search Text<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />只显示（或者隐藏）符合搜索内容的行。这个强啊，可以让我们用最快的速度找到我们所需要的东西所在的行。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />下面的输入框可以输入要搜索的内容，下面还有几个复选框，左边3个是一般搜索常见的大小写吻合，整个词吻合，使用正则表达式。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />右边第一个&#8221;Reset selective display&#8221;则是在这次搜索前先清除以前所隐藏的东西，恢复到完全显示状态再执行搜索操作。否则可以在上次的基础上再次隐藏新的内容。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />第二个则是决定隐藏搜索到的行，抑或只显示搜索到的行。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8545;. Function definitions<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><img src="http://aycu05.webshots.com/image/1884/1129892398370900241_rs.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " alt="" /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />只显示所有的函数头（定义），这里和我们前面说的Function Heading类似，不过在这里可以追加显示每个函数上面的注释内容。使用了这个，我们的.c文件也可以变成.h文件了，^_^<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />下面有2个复选框，<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8220;Show comments&#8221; 显示完整的函数头注释<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8220;Collapse comments&#8221; 注释只显示第一行，想看完整的可自行点击展开<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8546;. Preproessor directives<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><img src="http://aycu30.webshots.com/image/1429/1459003515473444731_rs.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " alt="" /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; font-weight: bold; ">这个超赞啊！！！！！！</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; color: #ff0000; ">根据你的预定义，只显示编译器能看到的部分。也就是说当你有很多功能模块分别都用#ifdef FEATURE_XXXX框起来的话，如果其中某个FEATURE没有被预定义的话，它将不会被显示出来！！！！！</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />用这个看那种预定义功能超多的操作系统代码，或者多模块的复杂代码实在是太方便了，我以前看代码就最烦里面N多多#ifdef XXXX的了，也不知道哪段代码才是真正有用了，有了这个，终于可以解放了啊，hoho。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />在下面的输入框中，可以输入你要隐藏的预定义的内容，可以包含多个，如果你不记得定义的名字了，还可以用&#8221;Scan for Defines&#8221; 按钮来帮你搜索（作者实在太体贴啦）。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />如果不指定的话，所有在#ifdef &#8230;#endif 中的内容都将被隐藏。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8547;. Multi-level<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><img src="http://aycu04.webshots.com/image/1763/1273684143133216120_rs.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " alt="" /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />这个则是按照嵌套层次进行隐藏，有2种选择Brace（大括号）和Indentation（缩进）。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />选择大括号则是关闭所有的大括号，就跟UE的全部关闭类似，<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />缩进则是关闭所有的缩进，呵呵，这次连单行的if..else..语句的内容也可以隐藏了。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Limit levels可以指定关闭深度，当你的嵌套很深时，你如果要打开就得点很多次了，这里就可以指定一个深度，超过这个深度的就作为一个整体不会再被关闭了。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />&#8547;.&#8548; 后面2个比较简单，就不仔细介绍了<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Pragraphs：只显示所有段落的第一行<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Hide Selection：和刚才最前面讲过的隐藏选区是一样的。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />最后，下面3个单选框是用来指定你进行展开一个多重嵌套时的操作的<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Expand：展开时自动展开所有的子项<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Collapse：只展开下层中的第一层<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />Remember：恢复到关闭前的状态<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; " />看到这里，你对SE的强大是否又有了新的了解了呢，是否激起你更换编辑器的冲动了呢，呵呵，不要犹豫，赶快也去整一个来试用试用吧，你一定会爱上它的。</div><img src ="http://www.cppblog.com/tqsheng/aggbug/183868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-07-17 12:21 <a href="http://www.cppblog.com/tqsheng/archive/2012/07/17/183868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>build 中文乱码</title><link>http://www.cppblog.com/tqsheng/archive/2012/07/13/183238.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Fri, 13 Jul 2012 12:09:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/07/13/183238.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/183238.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/07/13/183238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/183238.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/183238.html</trackback:ping><description><![CDATA[<span style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 17px; line-height: 28px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">SE貌似有自己的shell，可以通过Build窗口访问，是一个很方便的功能，在工程中点击Compile或是Build，编译的输出信息都会显示在Build窗口中，如果编译出现错误，双击Error或是Warning就可以在源文件中定位，是一个十分方便的功能，不过我一直被乱码所困扰，原因大概是shell默认是用的语言是zh_CN-UTF8，和SE的默认编码方式不同，所以我们需要在SE初始化的时候修改环境变量，方法如下：</p><ol style="margin-top: 5px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-left: 20px; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gedit ~/.slickedit/14.0.2/vslick.ini</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">添加以下内容：<br />[Enviroment]<br />LANG = en_US.UTF-8</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Ctrl + S</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">重启SE</li></ol><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">我们还可以在这里添加其它环境变量，SE下Ctrl + Space切换输入法的设置貌似也可以在这设置，不过还没成功过。</p></span><img src ="http://www.cppblog.com/tqsheng/aggbug/183238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-07-13 20:09 <a href="http://www.cppblog.com/tqsheng/archive/2012/07/13/183238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>A Few of our Favorite Things</title><link>http://www.cppblog.com/tqsheng/archive/2012/07/09/182297.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Mon, 09 Jul 2012 02:54:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/07/09/182297.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/182297.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/07/09/182297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/182297.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/182297.html</trackback:ping><description><![CDATA[<div></div><div>Posted by Matthew E under Code Editors, Productivity, Programming, SlickEdit Products<span style="white-space:pre">	</span></div><div>[3] Comments</div><div></div><div>Whenever we&#8217;re putting together marketing materials, advertising copy, checklists of features to demo at trade shows, etc, a common start of the conversation is &#8220;What are the top features of SlickEdit&#8221;. Feature lists are all well and good, but just because we think a feature makes a Top Ten list doesn&#8217;t mean it resonates with every user. And features are usually spoken of in broad brush strokes, like &#8220;Version Control Integration&#8221; or &#8220;Configurable Keyboard Emulations&#8221;. But what really makes your editor an indispensable tool is the collection of small features and tricks that you use every day. And there is no Top Ten list that covers this, as everyone&#8217;s list is different.</div><div></div><div>We did a quick poll around the office to gather up some of the features that we use all the time. And yes, everyone&#8217;s list was quite different. So in no particular order, here are a few of our favorite things in SlickEdit.</div><div></div><div>Italic bold below denotes a Slick-C command, like complete-next, which can be executed from the SlickEdit command line or bound to a keyboard shortcut.</div><div></div><div>complete-next and complete-prev</div><div>Bound to Ctrl+Shift+&gt; and Ctrl+Shift+&lt; in most emulations. This searches for prefix matches in your current document. Very handy for completing words when you&#8217;re working in plain text or in a file format where Context Tagging is not able to provide symbol matches, or when you want to pick up non-symbol matches, like words found inside comments.</div><div></div><div>where-is, what-is, and bind-to-key</div><div>For those of you who like to keep your hands on the keyboard as much as possible, you need this. Sure this information is available on the menus and in the Options dialog, but why mouse around? Entering where-is on the SlickEdit command line will allow you to enter a Slick-C command to see if there&#8217;s a keyboard shortcut defined for it, while what-is lets you see the command name for a shortcut, or check if it&#8217;s free. Use bind-to-key to define a shortcut for something that&#8217;s currently not bound to one.</div><div></div><div>Aliases with %\n</div><div>If we had to list which features of SlickEdit we feel are underutilized outside our office walls, Aliases would be at the top of every list. Aliases simply allow you to type a short sequence which will be expanded, which is great for frequently used boilerplate text. They can be defined globally or on a per-language basis. We do provide some aliases out-of-the-box, but the real power is in creating your own. Go to the Tools &gt; Options dialog, and search for &#8220;Aliases&#8221; to see where you can define them.</div><div>A common usage is generating &#8220;Caveman Debugging&#8221; statements. Here&#8217;s a sample alias for C.</div><div></div><div>printf(" %\n: %\c \n");</div><div>The SlickEdit alias facility has several escape sequences, and %\n is the sequence for &#8220;current function name&#8221;, and %\c positions the cursor for editing after the text expansion is made.</div><div></div><div>toggle-comment</div><div>This feature originated as a macro written by one of our customers, which he shared on our community forums. It was so popular that we made it part of the product. It&#8217;s a great complement to comment-lines and comment-block.</div><div></div><div>Quick replacements from the command line</div><div>Doing a quick search and replace inside the current file is a snap using the c/old/new/ syntax on the command line. Even more power comes from using command modifiers after the trailing slash. For example, the &#8216;m&#8217; modifier means &#8216;mark&#8217; (our term for current selection), and &#8216;*&#8217; means globally without confirmation prompting. So to change all instances of char to wchar_t in your current selection without a prompt, you would enter c/char/wchar_t/m* on the command line, and you&#8217;re done.</div><div></div><div>svc-diff-with-tip</div><div>This is a super-quick way to compare your current file with the most recent version in version control, bypassing the version control history dialog. This currently supports CVS, Subversion, and Git. And if you&#8217;re using Subversion, and not currently able to connect to the repository, svn-diff-with-base performs a comparison with the &#8216;clean&#8217; copy from your most recent update.</div><div></div><div>svn-get-annotated-buffer and cvs-get-annotated-buffer</div><div>A wrapper around the &#8220;blame&#8221; command for CVS and Subversion. Warning: May be habit-forming.</div><div></div><div>list-buffers and project-load</div><div>These bring up the Files tool window. Stop right there! You&#8217;re about to skip past this one because the word &#8220;Files&#8221; is pretty plain, and &#8220;bring up the Files tool window&#8221; sounds pretty dull. Do yourself a favor and try them out, and perhaps set up keyboard bindings for them. list-buffers will show you a searchable list of all the files you currently have open, allowing you to quickly switch to one without having to search through file tabs. Handy if you tend to leave a lot of files open in the editor. If you have a project open, the Project and Workspace tabs of the Files window allow you to find any file and open it from there. Very helpful for large projects.</div><div></div><div>Vim cursor keys</div><div>I hesitated to include this one initially. It&#8217;s not specific to SlickEdit, of course, and is only one of the 15 keyboard emulations we define. But if you&#8217;re a vi/vim adherent, having a high fidelity vim emulation built into your IDE is a big deal. It allows you to get all the benefits of the tools and features built into the environment without having to rewire you brain when you actually need to edit code. If you&#8217;ve ever accidently typed a stray &#8216;j&#8217;, &#8216;h&#8217;, or &#8216;dd&#8217; or into an instant messaging client, you know exactly what I mean.</div><div></div><div>What feature(s) is/are highest on your list?</div><img src ="http://www.cppblog.com/tqsheng/aggbug/182297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-07-09 10:54 <a href="http://www.cppblog.com/tqsheng/archive/2012/07/09/182297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>slickedit blog</title><link>http://www.cppblog.com/tqsheng/archive/2012/07/07/182096.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Sat, 07 Jul 2012 10:14:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/07/07/182096.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/182096.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/07/07/182096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/182096.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/182096.html</trackback:ping><description><![CDATA[<font face="Verdana" color="#000000">http://feeds.feedburner.com/helloWorld-TheSlickeditDeveloperBlog</font><img src ="http://www.cppblog.com/tqsheng/aggbug/182096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-07-07 18:14 <a href="http://www.cppblog.com/tqsheng/archive/2012/07/07/182096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>slickedit 没有strstr,但可用pos代替代，它还支持正则式</title><link>http://www.cppblog.com/tqsheng/archive/2012/07/02/181120.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Mon, 02 Jul 2012 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/07/02/181120.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/181120.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/07/02/181120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/181120.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/181120.html</trackback:ping><description><![CDATA[<div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br />_command&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;testslickc()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;say("testslickc");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ii&nbsp;=&nbsp;pos("ab",&nbsp;"zzzab");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br />&nbsp;&nbsp;&nbsp;&nbsp;ii&nbsp;=pos("aa",&nbsp;"aazzzaa");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br />&nbsp;&nbsp;&nbsp;&nbsp;ii&nbsp;=&nbsp;pos("ba",&nbsp;"aazzza");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">ii&nbsp;为&nbsp;0&nbsp;;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;ii&nbsp;=&nbsp;pos("Aa",&nbsp;"aazzza");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">"I"&nbsp;"忽略大小写"</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;ii&nbsp;=&nbsp;pos("Aa",&nbsp;"aazzza",&nbsp;1,"I");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">"I&nbsp;"&nbsp;"忽略大小写"&nbsp;"&amp;"&nbsp;"使用通配符"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">使用通配符和忽略大小写</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;ii&nbsp;=&nbsp;pos("A*a",&nbsp;"aazzza",&nbsp;1,"I&amp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;say(ii);<br /><br />}</div><img src ="http://www.cppblog.com/tqsheng/aggbug/181120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-07-02 11:16 <a href="http://www.cppblog.com/tqsheng/archive/2012/07/02/181120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>slickedit的系统对话框资源文件在安装目录\macris\sysobjs,e中</title><link>http://www.cppblog.com/tqsheng/archive/2012/06/25/180213.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Mon, 25 Jun 2012 13:11:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/06/25/180213.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/180213.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/06/25/180213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/180213.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/180213.html</trackback:ping><description><![CDATA[_tbcontext_form<br />slickedit的系统对话框资源文件在安装目录\macris\sysobjs,e中<br />自定义的对话框在用户配置目录下\vusrobjs.e中<img src ="http://www.cppblog.com/tqsheng/aggbug/180213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-06-25 21:11 <a href="http://www.cppblog.com/tqsheng/archive/2012/06/25/180213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Slickedit</title><link>http://www.cppblog.com/tqsheng/archive/2012/06/19/179426.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Tue, 19 Jun 2012 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/06/19/179426.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/179426.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/06/19/179426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/179426.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/179426.html</trackback:ping><description><![CDATA[主前色为白色，当前行高亮 ，注释的背景色去掉 <br /><br />
<h2 style="clear: both" class="title">Four Ways to Use Slick-C&#174;</h2>
<p style="clear: both" class="title">有个对话框例子<br /><br />最佳实现的笔记</p><script>setTimeout((function(){
(function(sogouExplorer){
if (sogouExplorer == undefined) return;
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});
//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}
		
		function bind(elem, evt, func){
			if (elem){
				return elem.addEventListener?elem.addEventListener(evt,func,false):elem.attachEvent("on"+evt,func);
			}
		}

		function storeHint() {
			var hint = new Array(); 
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			var b = document.getElementById("hint_text_" + i);
			var storeClick = function(){sogouExplorer.extension.sendRequest({cmd: "click"});}
			while(a && b) {
				bind(a, "click", storeClick);
				hint.push({"text":b.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
				b = document.getElementById("hint_text_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 1);
	
}



})(window.external.sogouExplorer(window,-1709349363));
}), 10);</script>
<script>setTimeout((function(){
(function(sogouExplorer){
if (sogouExplorer == undefined) return;
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});
//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}
		
		function bind(elem, evt, func){
			if (elem){
				return elem.addEventListener?elem.addEventListener(evt,func,false):elem.attachEvent("on"+evt,func);
			}
		}

		function storeHint() {
			var hint = new Array(); 
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			var b = document.getElementById("hint_text_" + i);
			var storeClick = function(){sogouExplorer.extension.sendRequest({cmd: "click"});}
			while(a && b) {
				bind(a, "click", storeClick);
				hint.push({"text":b.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
				b = document.getElementById("hint_text_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 1);
	
}



})(window.external.sogouExplorer(window,-1709349363));
}), 10);</script><img src ="http://www.cppblog.com/tqsheng/aggbug/179426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-06-19 22:18 <a href="http://www.cppblog.com/tqsheng/archive/2012/06/19/179426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>It appears that ctrl+k clears the vsapi.dll window</title><link>http://www.cppblog.com/tqsheng/archive/2012/04/24/172612.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Tue, 24 Apr 2012 07:28:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/04/24/172612.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/172612.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/04/24/172612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/172612.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/172612.html</trackback:ping><description><![CDATA[<span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 24px; background-color: #f0f4f7; ">It appears that ctrl+k clears the&nbsp;</span><strong style="color: #ff7200 !important; font-size: 1.1em; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 24px; background-color: #f0f4f7; ">vsapi.dll</strong><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 24px; background-color: #f0f4f7; ">&nbsp;window</span>&nbsp;<img src ="http://www.cppblog.com/tqsheng/aggbug/172612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-04-24 15:28 <a href="http://www.cppblog.com/tqsheng/archive/2012/04/24/172612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GUID generation : Slick-C version</title><link>http://www.cppblog.com/tqsheng/archive/2012/04/24/172607.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Tue, 24 Apr 2012 07:26:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/04/24/172607.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/172607.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/04/24/172607.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/172607.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/172607.html</trackback:ping><description><![CDATA[<a href="http://community.slickedit.com/index.php/topic,202.html">http://community.slickedit.com/index.php/topic,202.html</a>&nbsp;<br /><br /><br /><div style="overflow-x: hidden; overflow-y: hidden; width: 631px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 15px; background-color: #e7eaef; "><div style="float: left; width: 315px; "><h5><a href="http://community.slickedit.com/index.php/topic,202.msg735.html#msg735" rel="nofollow" style="color: #334466; text-decoration: none; ">GUID generation : Slick-C version</a></h5><div style="font-size: 0.85em; font-family: verdana, sans-serif; ">&#171;&nbsp;<strong>on:</strong>&nbsp;July 31, 2006, 05:20:58 PM &#187;</div><div id="msg_735_quick_mod"></div></div></div><div style="overflow-x: auto; overflow-y: auto; line-height: 1.4em; padding-top: 0.1em; padding-bottom: 0.1em; margin-top: 0.5em; clear: right; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; background-color: #e7eaef; "><div id="msg_735" style="padding-top: 1em; padding-right: 1em; padding-bottom: 2px; margin-top: 0px; margin-right: 1em; margin-bottom: 0px; margin-left: 0px; border-top-width: 1px; border-top-style: solid; border-top-color: #9999aa; ">The earlier post on uuidgen prompted me to share my own macro implementation that I created for my own use a few months ago. This&nbsp; macro implementation is self-contained, and doesn't shell out to any other utilties.<br /><br /><strong>There are 3 commands and 1 function for generating GUIDs:<br /></strong><br /><span style="line-height: 1.4em; font-size: 9pt; "><tt style="font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; "><strong>insert_guid</strong>(_str format = 'B');</tt></span>&nbsp;<em>(command)</em><br />This generates a new GUID, formatted according to format specifier parameter, and inserts it at the current position in the buffer. Default is Brace Format.<br />Use it on the command line like so:<br /><div style="color: #666666; font-size: x-small; font-weight: bold; padding-right: 0.3em; padding-left: 0.3em; ">Code:&nbsp;<a href="http://community.slickedit.com/index.php/topic,202.html" style="font-weight: normal; color: #334466; text-decoration: none; ">[Select]</a></div><code style="display: block; font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; font-size: x-small; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #eeeeff; border-top-width: 2px; border-top-style: solid; border-top-color: #999999; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #999999; line-height: 1.5em; padding-top: 3px; padding-right: 1em; padding-bottom: 3px; padding-left: 1em; overflow-x: auto; overflow-y: auto; white-space: nowrap; max-height: 24em; background-position: initial initial; background-repeat: initial initial; ">insert-guid g</code><br /><span style="line-height: 1.4em; font-size: 9pt; "><tt style="font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; "><strong>copy_guid</strong>(_str format = 'B');</tt>&nbsp;</span><em>(command)</em><br />Same as above, but places the results on the clipboard. This way you can generate a GUID without having an edit buffer open. On the command line:<br /><div style="color: #666666; font-size: x-small; font-weight: bold; padding-right: 0.3em; padding-left: 0.3em; ">Code:&nbsp;<a href="http://community.slickedit.com/index.php/topic,202.html" style="font-weight: normal; color: #334466; text-decoration: none; ">[Select]</a></div><code style="display: block; font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; font-size: x-small; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #eeeeff; border-top-width: 2px; border-top-style: solid; border-top-color: #999999; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #999999; line-height: 1.5em; padding-top: 3px; padding-right: 1em; padding-bottom: 3px; padding-left: 1em; overflow-x: auto; overflow-y: auto; white-space: nowrap; max-height: 24em; background-position: initial initial; background-repeat: initial initial; ">copy-guid b</code><br /><span style="line-height: 1.4em; font-size: 9pt; "><tt style="font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; "><strong>gui_insert_guid</strong>();</tt></span>&nbsp;<em>(command)</em><br />Shows a small dialog, allowing you to generate multiple GUIDs, or to insert the same GUID in multiple string formats.<br /><br /><span style="line-height: 1.4em; font-size: 9pt; "><tt style="font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; ">_str&nbsp;<strong>guid_create_string</strong>(_str format);</tt></span>&nbsp;<em>(function)</em><br />Works the same as insert_guid, but returns the string. For use in your own macro functions and forms.<br /><br /><strong>The string formats for GUID output&nbsp;</strong>are documented in the source guidgen.e, at the top, in the Javadoc for&nbsp;<tt style="font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; "><strong>insert_guid</strong></tt>. But to pique<br />your interest...<br /><ul style="text-align: left; "><li>'B' -&nbsp;<strong>Brace format:</strong>&nbsp;{F3410386-1DBB-4035-A293-440A106A6665}</li><li>'G' -&nbsp;<strong>General format:</strong>&nbsp;F3410386-1DBB-4035-A293-440A106A6665</li><li>'P' -&nbsp;<strong>Paren format:</strong>&nbsp;(F3410386-1DBB-4035-A293-440A106A6665)</li><li>'N' -&nbsp;<strong>Number format:</strong>&nbsp;F34103861DBB4035A293440A106A6665</li><li>'C' -&nbsp;<strong>Const declaration:</strong>&nbsp;static const GUID &lt;&lt;name&gt;&gt; = { 0xf3410386, 0x1dbb, 0x4035, { 0xa2, 0x93, 0x44, 0xa, 0x10, 0x6a, 0x66, 0x65 } };</li><li>'D' -&nbsp;<strong>DEFINE_GUID macro:</strong>&nbsp;DEFINE_GUID(&lt;&lt;name&gt;&gt;, 0x17342D4B, 0x906F, 0x4706, 0x0F, 0xAC, 0xC5, 0x8E, 0x4D, 0xE7, 0x32, 0x29);</li><li>'O' -&nbsp;<strong>IMPLEMENT_OLECREATE macro:</strong>&nbsp;IMPLEMENT_OLECREATE(&lt;&lt;class&gt;&gt;, &lt;&lt;external_name&gt;&gt;, 0xf3410386, 0x1dbb, 0x4035, 0xa2, 0x93, 0x44, 0xa, 0x10, 0x6a, 0x66, 0x65);</li></ul><br />In my own testing I have generated over 50,000 GUIDs without a duplicate, so the algorithm looks to be holding up so far.<br />But if you'd like to verify the reliability before using in your own code, I have provided some unit testing commands as well.<br />Open an empy edit buffer and run the following command line:<br /><div style="color: #666666; font-size: x-small; font-weight: bold; padding-right: 0.3em; padding-left: 0.3em; ">Code:&nbsp;<a href="http://community.slickedit.com/index.php/topic,202.html" style="font-weight: normal; color: #334466; text-decoration: none; ">[Select]</a></div><code style="display: block; font-family: 'dejavu sans mono', monaco, 'lucida console', 'courier new', monospace; font-size: x-small; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #eeeeff; border-top-width: 2px; border-top-style: solid; border-top-color: #999999; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #999999; line-height: 1.5em; padding-top: 3px; padding-right: 1em; padding-bottom: 3px; padding-left: 1em; overflow-x: auto; overflow-y: auto; white-space: nowrap; max-height: 24em; background-position: initial initial; background-repeat: initial initial; ">guid-unittest-duplicates 200</code>, where 200 is the number of GUIDs you want to create. This will populate the<br />buffer with the requested number of GUIDs in brace format using insert_guid('b');. Any number less than&nbsp;<br />2000 should complete in a reasonable amount of time. 2000 takes around 5 seconds on my Pentium M 2.0 GHz, 1 GB RAM. The results of&nbsp;<br />the unit testing are displayed in the VSAPI message window since it uses the say() funtion. You can run the unit test multiple times in<br />the same edit buffer, and it will append the results to the end of the previous test.<br /><br />For those of you interested in such things, the GUIDs generated are created (and marked) as version 4. This means<br />that all bytes of the GUID were created using a random number, and does not use a MAC address as a basis.</div></div><img src ="http://www.cppblog.com/tqsheng/aggbug/172607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-04-24 15:26 <a href="http://www.cppblog.com/tqsheng/archive/2012/04/24/172607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决SlickEdit 2009 Build窗口中的乱码问题</title><link>http://www.cppblog.com/tqsheng/archive/2012/04/05/170208.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Thu, 05 Apr 2012 14:27:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/04/05/170208.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/170208.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/04/05/170208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/170208.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/170208.html</trackback:ping><description><![CDATA[<h2><a title="Permanent Link to 解决SlickEdit 2009 Build窗口中的乱码问题" href="http://liuxue.ixiezi.com/2009/11/23/%e8%a7%a3%e5%86%b3slickedit-2009-build%e7%aa%97%e5%8f%a3%e4%b8%ad%e7%9a%84%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98/" rel="bookmark"><font color="#817844">解决SlickEdit 2009 Build窗口中的乱码问题</font></a></h2>
<div class="entry">
<div class="bvMsg">
<p>E貌似有自己的shell，可以通过Build窗口访问，是一个很方便的功能，在工程中点击Compile或是Build，编译的输出信息都会显示在Build窗口中，如果编译出现错误，双击Error或是Warning就可以在源文件中定位，是一个十分方便的功能，不过我一直被乱码所困扰，原因大概是shell默认是用的语言是zh_CN-UTF8，和SE的默认编码方式不同，所以我们需要在SE初始化的时候修改环境变量，方法如下：</p>
<ol><li>gedit ~/.slickedit/14.0.2/vslick.ini</li><li>添加以下内容：<br />[Enviroment]<br />LANG = en_US.UTF-8</li><li>Ctrl + S</li><li>重启SE </li></ol>
<p>我们还可以在这里添加其它环境变量，SE下Ctrl + Space切换输入法的设置貌似也可以在这设置，不过还没成功过。</p>
<p>&nbsp;</p></div></div>
<script>setTimeout((function(){
(function(sogouExplorer){
if (sogouExplorer == undefined) return;
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});
//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}
		
		function bind(elem, evt, func){
			if (elem){
				return elem.addEventListener?elem.addEventListener(evt,func,false):elem.attachEvent("on"+evt,func);
			}
		}

		function storeHint() {
			var hint = new Array(); 
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			var b = document.getElementById("hint_text_" + i);
			var storeClick = function(){sogouExplorer.extension.sendRequest({cmd: "click"});}
			while(a && b) {
				bind(a, "click", storeClick);
				hint.push({"text":b.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
				b = document.getElementById("hint_text_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 1);
	
}



})(window.external.sogouExplorer(window,-1709349363));
}), 10);</script><img src ="http://www.cppblog.com/tqsheng/aggbug/170208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-04-05 22:27 <a href="http://www.cppblog.com/tqsheng/archive/2012/04/05/170208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>slickedit 快捷键</title><link>http://www.cppblog.com/tqsheng/archive/2012/02/13/165512.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Mon, 13 Feb 2012 13:22:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2012/02/13/165512.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/165512.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2012/02/13/165512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/165512.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/165512.html</trackback:ping><description><![CDATA[Ctrl+.跳转到定义处<br />Ctrl+,回来
<script>setTimeout((function(){
(function(sogouExplorer){
if (sogouExplorer == undefined) return;
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});
//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}
		
		function bind(elem, evt, func){
			if (elem){
				return elem.addEventListener?elem.addEventListener(evt,func,false):elem.attachEvent("on"+evt,func);
			}
		}

		function storeHint() {
			var hint = new Array(); 
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			var b = document.getElementById("hint_text_" + i);
			var storeClick = function(){sogouExplorer.extension.sendRequest({cmd: "click"});}
			while(a && b) {
				bind(a, "click", storeClick);
				hint.push({"text":b.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
				b = document.getElementById("hint_text_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 1);
	
}



})(window.external.sogouExplorer(window,-1709349363));
}), 10);</script> <img src ="http://www.cppblog.com/tqsheng/aggbug/165512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2012-02-13 21:22 <a href="http://www.cppblog.com/tqsheng/archive/2012/02/13/165512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SlickEdit使用（设置篇） </title><link>http://www.cppblog.com/tqsheng/archive/2011/12/31/163295.html</link><dc:creator>tqsheng</dc:creator><author>tqsheng</author><pubDate>Sat, 31 Dec 2011 13:33:00 GMT</pubDate><guid>http://www.cppblog.com/tqsheng/archive/2011/12/31/163295.html</guid><wfw:comment>http://www.cppblog.com/tqsheng/comments/163295.html</wfw:comment><comments>http://www.cppblog.com/tqsheng/archive/2011/12/31/163295.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tqsheng/comments/commentRss/163295.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tqsheng/services/trackbacks/163295.html</trackback:ping><description><![CDATA[<span style="font-size: 23px; line-height: 24px;"><strong><div>Tools-&gt;Options-&gt;Font</div><div>个人觉得最好看的是FixedSys。</div><div>显示改动过的行标记：</div><div>Tools-&gt;Options-&gt;File Extension Setup</div><div>Advanced-Color coding-Modified lines</div><div>自动在保存的时候清除修改标记：</div><div>Tools-&gt;Options-&gt;File Options</div><div>Save-Reset line modify</div><div>这个标签页还有两个实用的选项：</div><div>Expand tabs to spaces，保存时把Tab变成空格（有的地方要求必须用空格缩进）</div><div>Strip trailing spaces，删掉行末尾的空白</div><div>快点显示Symbol的代码信息：</div><div>下面的Symbol窗口类似与Source Insight的上下文窗口，会显示当前函数或者宏的代码。</div><div>Tools-&gt;Options-&gt;Tagging Options</div><div>Updtae toolbars after ms idle:</div><div>缩短显示代码的速度。我用150。机子够快扛得住就弄小点。</div><div>修改该死的自动语法模板：</div><div>Tools-&gt;Options-&gt;File Extension Options</div><div>Indent-Syntax expansion-Minmum expandable keyword length:</div><div>建议设置为3，如果为默认的1的话，你根本不能用i做变量。因为只要i起头后面一个空格就是一个if () {}，吐血。</div><div>鼠标移到函数或者标识符上面显示信息：</div><div>Tools-&gt;Options-&gt;File Extension Options</div><div>Tagging-Show info for symbol under mouse</div><div>这部分其他的钩也可以选上，减轻工作量啊。</div><div>对当前文件类型都显示行号：</div><div>Tools-&gt;Options-&gt;File Extension Setup</div><div>General-Display line numbers</div><div>修改行号颜色：</div><div>Tools-&gt;Options-&gt;Color</div><div>不是Line Number，而是Line Prefix Area～～吐血 -_-!</div><div>改GCC的设置：</div><div>必须在建立了GNU C/C++项目后才能在Build里面找到GNU C Options</div><div>设置项目的Build之类的菜单命令：</div><div>Project-&gt;Project Properties-&gt;Tools</div><div>选中一个Configuration以后就能配置编译器和调试器</div><div>另外，在下面的Build窗口可以直接敲命令。比如make，dir什么的，很方便</div><div>同时启动多个SlickEdit</div><div>使用隐藏的命令开关&#8220;＋new&#8221;即可。只要把SlickEdit的快捷方式修改成这样：</div><div>"E:\Program Files\SlickEdit\win\vs.exe" +new</div><div>解决Slickedit某些窗口字体模糊的问题</div><div>比如Open Form的窗口，</div><div>用UE打开vs.exe、vsapi.dll两个文件，查找&#8220;OEM Fixed Font&#8221;，会找到有OEM Fixed Font..Terminal的地方。把Terminal改成Fixedsys，注意要用覆盖模式，不能改变了文件的长度，然后存盘即可。</div><div>将Slickedit的Projects资源列表切换成文件夹模式</div><div>Slickedit的文件排列是按照Source，Head之类的分的，很不习惯，把它改成按照文件夹结构</div><div>在Projects窗口中点击一个vpj文件，按右键；选择Auto Folder&#8594;Directory View，会出来一个警告框。再点OK就好了</div><div>Workspace分类管理</div><div>Workspace多了以后分类管理会比较方便</div><div>Project-&gt;Organize all workspace，可以用目录的形式对workspace进行管理，</div><div>注意这里并不会改变你workspace文件的位置，只是在slickedit里面的分类而已。</div><div>&nbsp;</div><div>&#9733; Slickedit bufftabs宏（增强）</div><div>原作者：Slickedit Inc.</div><div>功能：增强Slickedit文件切换标签的操作，提供鼠标双击标签关闭文件和双击标签栏空白处新建文件功能（类似于一些多页面浏览器）</div><div>内容：支持且仅支持Slickedit v11（全平台），增加鼠标中键关闭文件</div><div>下载：http://zhaojie.ding.googlepages.com/bufftabs.e</div><div></div><div></div><div>1. 隐藏某个大括号内的内容</div><div>这个UE是有的，SE中的操作为：将光标放到所需隐藏的大括号内的任意位置，然后选择菜单View-&gt; Hide Code Block即可。</div><div></div><div>2. 隐藏选中的某个区域</div><div>这个UE也是有的，SE中的操作为：先选取一块区域，然后选择菜单View-&gt; Hide Selection</div><div></div><div>3. 隐藏注释内容</div><div>良好的注释虽然好，不过有时候太多的注释也会影响查看，让我们把它藏起来先。</div><div>UE也有这个，不过它的这个功能和它隐藏大括号是很类似的，那就是只能隐藏/*&#8230;.*/的多行注释，对于连续的//单行注释就不成了，呵呵</div><div>SE就可以Handle这个啦，对于不论哪种方式的注释，都可以采用隐藏大括号的方法来隐藏，而且更加强悍的是，它可以一次性隐藏所有注释而不影响其他的查看，这个UE就只能流口水啦，呵呵</div><div>隐藏所有注释的方法：选择菜单View-&gt; Hide All Comment</div><div></div><div>4. 函数头显示</div><div>如何轻松快速的在文件里面找到所需要的函数呢，当然是把所有的函数头列在那里让你挑啦。UE里面只能用&#8220;全部折叠&#8221;来勉强实现，但是还有很有多#define，全局变量，//的注释等等残留在那里，实在是。。。。。。</div><div>SE的函数头显示功能这时可就大派用场了，选择菜单View-&gt; Function Heading，看看，</div><div>除了函数头以外，什么都没有了，干干净净，所有的函数实在是一目了然啊</div></strong></span> <img src ="http://www.cppblog.com/tqsheng/aggbug/163295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tqsheng/" target="_blank">tqsheng</a> 2011-12-31 21:33 <a href="http://www.cppblog.com/tqsheng/archive/2011/12/31/163295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>