猪哥 的个人资料猪哥的Blog日志列表留言簿 工具 帮助
2007/11/30

完美快速切换Slickedit 2007的Preview窗口风格

最近又开始用回把Preview窗口Dock到界面下面的传统布局了。不得不又要去hack Slickedit的tagwin源码来把它弄成适合于丢到下面的形式。但是在家里用宽屏双显的时候把Preview独立放出来以后搞成传统布局又不好用了。为了避免总是在v12风格和v11的风格之间改来改去的痛苦,今天干脆一了百了做成了动态Preview窗口布局切换,只要一条命令就能将Preview窗口的布局风格在v11以前的经典风格和v12的新风格之间切换。

切换后的效果如下图(Flickr!图片):



只要一条toggle-tagwin-style命令就能切换风格了,非常方便。切换成v11以前的经典风格以后,原来没什么用的文档窗口会彻底消失,用起来完美!

点击下载 (v12.0.3 ONLY!)
2007/11/28

给Slickedit增加自动显示Tab制表符功能

目前所在的公司中编码时是不允许使用Tab制表符进行缩进,而必须使用空格填充的。这样才能确保代码在任何配置的编辑器上看起来的效果都整齐一致。自己写代码的时候编辑器自己就能控制住用空格填充制表符,不过一些移植的代码就比较郁闷,里面经常会遇到用Tab缩进的。如果编辑器不能显示Tab制表符的话常常会忘记进行一下Tab→空格的转换,造成代码格式违例。另外SE默认的显示Tab字符功能也不太好用,总是要为每个Buffer单独打开才行。所以今天用着觉得郁闷,就打算改进一下SE的这个缺陷。

因为实在是懒得去修改SE的文件类型设置界面(不过N早的SE版本是支持这个设置的,不知道后来为啥去掉了NND),所以我就改成根据文件是否使用Tab字符缩进来自动控制Tab制表符显示了。如果在SE的文件扩展设置里面把某类文件(比如C文件)设置为“不使用制表符缩进”,那么打开这类文件的时候,制表符显示功能就会自动被打开。反之,如果SE的扩展设置里面设置了某类文件是“使用制表符缩进”的(如Makefile文件),打开这类文件时就不会去修改制表符显示设置。

目前这个修改还是很有效的,只要输入命令:toggle-auto-tab-display就能切换是否激活这个功能。

SlickC文件是基于Slickedit 12.0.3修改的,版本不一致的要注意merge:下载
2007/11/10

BinCalc最新版本发布

BinCalc最新版本正式发布啦,将近一年以来对Windows桌面版的第一次重要升级。目前的主要功能如下(+为本次升级新增):
  • 首创的3进制同屏无切换输入和高度优化的2进制输入输出界面(位指示器)
  • 多种不同形式的结果导出(对应进制的显示框点右键)
  • Classic 4-Level RPN计算器,支持位运算和基本算术运算
  • 优化的单目运算操作按钮,可以对任意一个栈寄存器进行单目运算
  • 多种形式的二进制位标号支持(位序号处点右键)
  • 彻底优化的键盘输入支持(+)
  • 10进制支持Signed/Unsigned类型,支持数字分组显示(+)
  • 8进制支持和针对文件权限值优化的操作面板(+)
Palm OS版本没有升级,还是老样子。因为现在已经对做Palm OS软件没啥兴趣了——自己已经没有Palm可用啦。
Palm OS版本的基本功能如下:
  • 首创的3进制同屏无切换输入和高度优化的2进制输入输出界面(位指示器)
  • 简单算术顺序(ALG)计算器,支持位运算
  • 多种形式的二进制位标号支持

如果不出意外的话,PalmOS版本应该是永远不会再有更新不会再维护了。不过一个软件能同时有PDA/智能手机版本和Windows PC版本,听起来也是很酷的事情(# ̄▽ ̄#)

下载:本地下载 或者 Handango.com

英文版的功能图介:









2007/11/7

BinCalc最终改进完成!

昨晚终于想出了怎么完美支持键盘输入的界面以后,立马奋战1小时把它做出来了。现在我的BinCalc终于无论是键盘输入还是界面输入上都没有什么遗憾了。

为了支持键盘输入,我不得不加入我一直非常抵制的进制切换开关。不过这个开关终于被不破相地引入了目前计算器的界面中(Flickr图片):



粗看可能没发现啥,不过奥妙就在黄色高亮的显示框上面。键盘的进制用黄色高亮的显示框来标记,如果高亮位于10进制,那键盘输入的数字就是10进制的,依此类推。为了照顾色弱的用户(我一直偏好淡色调),在进制输入面板的标题上也会以“*”号来标明当前键盘的进制状态。这样就可以轻易使用键盘进行输入了。

要切换键盘的进制,有两种方法:1是直接双击对应进制的显示框,这样可以直接选择进制。2是按键盘上面的Tab键,进制会按照顺时针在界面上循环。通过黄色高亮的显示框可以很容易分辨当前的键盘进制模式。

目前支持的键盘按键如下:
  • Tab:切换键盘的进制
  • Esc:清空当前输入(CLx)
  • 回车:Enter(压栈)
  • 退格:Del(删除一位)
  • 0-9,A-F:数字输入
  • + - * /:算术计算
  • < >:左右移位(Shl,Shr)
  • ~ % & | ^:和C语言意义相同的位运算
  • 上下方向键:堆栈上下移动
  • 左右方向键:当前值(x寄存器)左右移1位
  • Ctrl+C:将当前进制显示的数字复制到剪贴板
  • Ctrl+V:将剪贴板的内容粘贴到当前进制输入
键盘已经可以完成大部分的输入工作,包括进制切换和堆栈调整了(不过遗憾的是x<>y键还没有找到合适的按键映射,看来还是只能点界面上的按钮啦,不过很少用)。

另外,RPN的堆栈也进行了修正。之前的版本T寄存器的表现和惠普计算器的表现行为不一致(不会随着堆栈的下移而保留),考虑到凡是用RPN的必然是HP计算器的粉丝,所以还是修改修改让XYZT寄存器能和惠普计算器用起来一样。

这次大升级完成了8进制支持和键盘输入支持,基本完成啦!本周内即可发布!
2007/11/5

BinCalc无敌二进制计算器再次修改

今晚除了几个我的BinCalc的BUG,并且添加了构想中的八进制(Octal)换算功能。之所以说只是换算,是因为我真的从来没有用8进制计算过(FIXME:还有哪些地方会用到8进制计算?),所以在RPN的4个寄存器里面依然只能支持HEX和DEC显示。

八进制的换算跟我昨天说的一样,完全为换算文件权限位优化的:带有专门的位指示器来设置低9位的u、g、o权限值。这个界面昨天就想好了,只是今晚抽空把它做了出来:
(依然是Flickr图片,看不到的请用Access Flickr扩展。不过多嘴一句:Flickr似乎切到Farm3了?!GFW只和谐掉Farm1和2,昨晚试了试似乎最近贴在Farm3的图片还是能直接在国内看到的~~)

8进制的Copy菜单也增加了拷贝成文件权限字符串的形式:

8进制面板和16进制是互相切换的。这个打破了我尽力避免的进制切换设计思想。不过要做到塞进8进制来也无需切换,那界面实在是太难设计了(俺设计界面可不专业的说~~哪位专业的可以想想怎么直接塞进8进制面板?)。幸好8进制是非常少用的,用的时候切一下应该也能忍受。

关于键盘支持上,目前还是没有办法:依然想不出怎么自动识别按下的键是什么进制的(界面没有进制切换开关,是三进制同屏的)。不过这个计算器的主要目的是作为进制转换和置位计算,我自己在使用中基本没有过要手工输入数据的需求(要么是从别的地方Copy,要么是直接置位反算出16进制模式)。所以支持键盘这个俺不打算再想了,头疼~~

目前这个计算器基本达到我最初的设计要求了:成为一个界面上足以吓住计算机麻瓜的,只有程序员才看得懂、懂得用和用的上的计算器(# ̄▽ ̄#)。

8进制部分依然还要测试,等测试完以后发布~~

BinCalc无敌二进制计算器小修改

今晚对我的BinCalc二进制计算器的Windows版本做了些小修订,目前自己正在测试,测试完成后再发布:

主要的修改如下(Flickr图片,请用Access Flickr扩展观看!):

1. 功能上增加了无符号整型计算已经移位运算的支持。无符号整型计算是以前觉得没啥用所以没做,不过后来发现还是有点用的,就加上了。移位运算之前没有添加的原因完全是因为界面上面塞不下(已经排得很密了)。所以今晚痛苦地调整了半天控件,硬生生把那两个按钮挤下去了(# ̄▽ ̄#)



在RPN计算面板中,只有+-*/是个按钮是支持带符号整型的。其他的位运算和取模移位什么的全是仅支持无符号整型。理论上移位应该是要支持带符号的,但是我们在实际使用中好像从来没有过带符号移位的需要吧(都是算算掩码什么的似乎)。倒是害怕无意中做了带符号右移,把符号位扩展了得到不想要的结果就郁闷了。所以移位我就和位运算放在一块作为不带符号扩展的纯位操作运算符了。

2. Copy菜单里面添加了效果预览。以前有人问过我里面的0x####是代表啥(─.─||),这回有预览了应该没问题了吧:



3. 二进制位指示器的标尺切换改成右键菜单界面。因为原来的切换方式实在是藏匿得太深了我自己经常都忘记怎么切了。这样就直观多了:



4. 最后,十进制Copy里面增加了G/M/K容量表示形式的格式。这个主要是我经常要通过一个指针算算大概是在内存的哪个地方,脑子里面去除1024除不清楚。还是直接加上的了:



后面的功能计划是添加8进制(Oct)计算面板。准备和16进制的面板叠在一起,用的时候再切出来(因为8进制实在是很少用)。用到8进制的地方似乎除了设置文件权限以外就基本没了?不管别人怎样,起码我只有在写文件权限的时候用到了,所以8进制的操作面板将会专门针对文件权限位计算设计~~完成时间~~看看啥时候还有几小时的闲功夫了。
2007/11/3

为Slickedit加入类似IDA Pro的自动高亮功能

IDA Pro静态反汇编工具有个非常不错的功能,就是能够自动在全文中高亮当前光标所在处的单词。这样在进行代码分析的时候,可以一眼看到寄存器或者Label的使用情况。用起来就类似于将SourceInsight的highlight功能自动化,自动为当前光标所在处的单词进行高亮。所以近期在分析TIPC代码的时候,也画了半小时简单为Slickedit加入了类似的功能。

这个宏只能用于Slickedit 2007以上版本,因为其直接调用了这个版本的SE自带的mark-all-occurences命令。在加载了以后,通过ida-like-highlight命令可以激活/禁止IDA-like自动高亮功能。

激活以后,光标所在的单词会被全文高亮,表现和IDA Pro相同(Flickr图片,请通过Access Flickr扩展查看):



这个功能在阅读代码的时候是很有帮助的,建议打开。但是在写代码的时候就是个晃眼的累赘,得关闭了。所以还是将这个命令绑定到热键上才好用。我将其绑定到Ctrl+H上,看代码时热键激活,写代码时热键关闭,挺方便。另外这个功能在默认状态下是关闭的,不会干扰平常编码操作。

此处下载