Source Insight是一款强大的代码查看工具,本身支持扩展性很好。下面我们就介绍2个扩展用例。

1、快速打开当前文件所在的目录,这个功能类似于eclipse的easyshell插件,就是能快速定位到文件所在的目录,这个在代码查看的时候是很有好处的。

按照以下步骤,首先进入【option】->【Custom Commands】

自定的命令名,个人发挥,关键是填入 explorer.exe %d,

设置快捷键CTRL+T

也可以将自定义命令加入Menu菜单中

到此设置完毕,可以通过快捷键CTRL+T,直接打开当前文件所在的目录。

2、与eclipse中快捷方便的注释反注释相比较,sI是有点古板和不方便额。但是可以通过自定义的宏块来改善这个情况。

首先,打开Projcet->Open project,选择base,可以看到utils.em文件,将下列宏添加到该文件中。

MultiLineComment宏功能就是可以注释、反注释代码

  1. macro MultiLineComment()
  2. {
  3. hwnd = GetCurrentWnd()
  4. selection = GetWndSel(hwnd)
  5. LnFirst = GetWndSelLnFirst(hwnd)      //取首行行号
  6. LnLast = GetWndSelLnLast(hwnd)      //取末行行号
  7. hbuf = GetCurrentBuf()
  8. if(GetBufLine(hbuf, 0) == "//magic-number:tph85666031"){
  9. stop
  10. }
  11. Ln = Lnfirst
  12. buf = GetBufLine(hbuf, Ln)
  13. len = strlen(buf)
  14. while(Ln <= Lnlast) {
  15. buf = GetBufLine(hbuf, Ln)  //取Ln对应的行
  16. if(buf == ""){                    //跳过空行
  17. Ln = Ln + 1
  18. continue
  19. }
  20. if(StrMid(buf, 0, 1) == "/") {       //需要取消注释,防止只有单字符的行
  21. if(StrMid(buf, 1, 2) == "/"){
  22. PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
  23. }
  24. }
  25. if(StrMid(buf,0,1) != "/"){          //需要添加注释
  26. buf = Cat("//", buf)
  27. if(Ln == Lnfirst){
  28. buf = Cat(buf,"//removed by jhy")//注释作者信息
  29. }
  30. PutBufLine(hbuf, Ln, buf)
  31. }
  32. Ln = Ln + 1
  33. }
  34. SetWndSel(hwnd, selection)
  35. }
  1. macro MultiLineComment()
  2. {
  3. hwnd = GetCurrentWnd()
  4. selection = GetWndSel(hwnd)
  5. LnFirst = GetWndSelLnFirst(hwnd)      //取首行行号
  6. LnLast = GetWndSelLnLast(hwnd)      //取末行行号
  7. hbuf = GetCurrentBuf()
  8. if(GetBufLine(hbuf, 0) == "//magic-number:tph85666031"){
  9. stop
  10. }
  11. Ln = Lnfirst
  12. buf = GetBufLine(hbuf, Ln)
  13. len = strlen(buf)
  14. while(Ln <= Lnlast) {
  15. buf = GetBufLine(hbuf, Ln)  //取Ln对应的行
  16. if(buf == ""){                    //跳过空行
  17. Ln = Ln + 1
  18. continue
  19. }
  20. if(StrMid(buf, 0, 1) == "/") {       //需要取消注释,防止只有单字符的行
  21. if(StrMid(buf, 1, 2) == "/"){
  22. PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
  23. }
  24. }
  25. if(StrMid(buf,0,1) != "/"){          //需要添加注释
  26. buf = Cat("//", buf)
  27. if(Ln == Lnfirst){
  28. buf = Cat(buf,"//removed by jhy")//注释作者信息
  29. }
  30. PutBufLine(hbuf, Ln, buf)
  31. }
  32. Ln = Ln + 1
  33. }
  34. SetWndSel(hwnd, selection)
  35. }

保存后,打开新的工程:options->key assignments(设置快捷键)

到此为止,我们在代码中使用ALT+X的快捷键看看,效果如下:

3、我们再来贴一个快速插入时间的宏,类似于UltraEdit中的F7快捷键功能

  1. macro MonthToName(MonthNum)
  2. {
  3. if (MonthNum== 1)
  4. return "Jan"
  5. if (MonthNum== 2)
  6. return "Feb"
  7. if (MonthNum== 3)
  8. return "Mar"
  9. if (MonthNum== 4)
  10. return "Apr"
  11. if (MonthNum== 5)
  12. return "May"
  13. if (MonthNum== 6)
  14. return "Jun"
  15. if (MonthNum== 7)
  16. return "Jul"
  17. if (MonthNum== 8)
  18. return "Aug"
  19. if (MonthNum== 9)
  20. return "Sep"
  21. if (MonthNum== 10)
  22. return "Oct"
  23. if (MonthNum== 11)
  24. return "Nov"
  25. if (MonthNum== 12)
  26. return "Dec"
  27. }
  28. macro DisplayDate()
  29. {
  30. szTime = GetSysTime(1)
  31. Day = szTime.Day
  32. Month = szTime.Month
  33. Year = szTime.Year
  34. if (Day < 10)
  35. szDay = "0@Day@"
  36. else
  37. szDay = Day
  38. szMonth = MonthToName(Month)
  39. hbuf = GetCurrentBuf()
  40. SetBufSelText(hbuf, "@szMonth@ @szDay@, @Year@")
  41. }
    1. macro MonthToName(MonthNum)
    2. {
    3. if (MonthNum== 1)
    4. return "Jan"
    5. if (MonthNum== 2)
    6. return "Feb"
    7. if (MonthNum== 3)
    8. return "Mar"
    9. if (MonthNum== 4)
    10. return "Apr"
    11. if (MonthNum== 5)
    12. return "May"
    13. if (MonthNum== 6)
    14. return "Jun"
    15. if (MonthNum== 7)
    16. return "Jul"
    17. if (MonthNum== 8)
    18. return "Aug"
    19. if (MonthNum== 9)
    20. return "Sep"
    21. if (MonthNum== 10)
    22. return "Oct"
    23. if (MonthNum== 11)
    24. return "Nov"
    25. if (MonthNum== 12)
    26. return "Dec"
    27. }
    28. macro DisplayDate()
    29. {
    30. szTime = GetSysTime(1)
    31. Day = szTime.Day
    32. Month = szTime.Month
    33. Year = szTime.Year
    34. if (Day < 10)
    35. szDay = "0@Day@"
    36. else
    37. szDay = Day
    38. szMonth = MonthToName(Month)
    39. hbuf = GetCurrentBuf()
    40. SetBufSelText(hbuf, "@szMonth@ @szDay@, @Year@"

转:

[转]Source Insight使用小技巧小结的更多相关文章

  1. Source Insight使用小技巧小结

    Source Insight是一款强大的代码查看工具,本身支持扩展性很好.下面我们就介绍2个扩展用例. 1.快速打开当前文件所在的目录,这个功能类似于eclipse的easyshell插件,就是能快速 ...

  2. Source Insight的应用技巧、宏功能

    目录 1 简介... 5 2 搭建我们的SI环境... 5 2.1 搭建步骤... 5 2.2 说明... 6 3 应用技巧... 6 3.1 初级应用技巧... 6 3.1.1 解决字体不等宽与对齐 ...

  3. Source Insight设置总结

    在网上搜索了一些关于Source Insight的设置技巧,把这些结果给总结下来: 1. 背景色选择 要改变背景色Options->preference->windows backgrou ...

  4. source insight快捷键及使用技巧

      source insight快捷键及使用技巧 退出程序                             : Alt+F4 重画屏幕                             ...

  5. Source Insight 技巧总结

    以下文章转载自网络:http://blog.csdn.net/junjie319/article/details/6910992 http://www.cnblogs.com/bluestorm/ar ...

  6. [SourceInsight].source insight 使用技巧

    转自:https://www.veryarm.com/140428.html 1  开胃菜-初级应用 1.1  选择美丽的界面享受工作 虽然不能以貌取人,但似乎从来没有人责备以貌取软件的.SI的华丽界 ...

  7. Source Insight使用技巧

    1. source insight必设: option-->key assignments-->    Edit: Delete Line ---- Assign New Key: Ctr ...

  8. source insight 支持verilog 及使用技巧

    安装 1.首先到官网下载clf文件 http://www.sourceinsight.com/public/languages/ 2.配置source insight 以前有的先删除 Options ...

  9. source insight技巧

    (1)在Source Insight中能不能设置永久Bookmark 可以从macro方面入手 (2)source insight中添加.S文件 (3)source insight里面怎么能不让它每次 ...

随机推荐

  1. LALR(1)语法分析生成器--xbytes

    0.概述: 看了编译器龙书和虎书后,自己手动写了一个LALR(1)语法分析生成器,使用的语法文件格式和lemon的差不多. 程序里面很多的算法也都是摘录自虎书,龙书虽然讲的很详细,但是真正动手写的时候 ...

  2. CSS选择器性能分析

    写了几篇关于js的博客,也是关于性能的,现在,我觉得有必要那css来认真分析一下了.之前只是看别人这么写就跟着写,但是没有去研究这样写或者是不是正确的写法,性价比怎么样,渲染的效率好么!这些都没有考虑 ...

  3. Oauth笔记

    上周的工作有安全验证这一块,但不懂,只知道有几个关键字Oauth.secret-key .token.签名等.今天就查下资料做笔记. Oauth是什么 不依靠用户账号和密码就能获得访问资源权限 本质: ...

  4. 带缓存的输入输出-bufferedinputstream类与bufferedoutputstream类

    package hengzhe.cn.o1; import java.io.*; /* * 带缓存的输入输出-bufferedinputstream类与bufferedoutputstream类 * ...

  5. Android项目实战(十四):TextView显示html样式的文字

    项目需求: TextView显示一段文字,格式为:(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色. 一开始我想的是用(转) SpannableStr ...

  6. 二叉查找树(binary search tree)详解

    二叉查找树(Binary Search Tree),也称二叉排序树(binary sorted tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于 ...

  7. KVC实现原理简介

    KVC,全称:Key-Value-Coding. KVC运用了isa-swizzling技术.isa-swizzling就是类型混合指针机制.KVC主要通过isa-swizzling来实现其内部定位查 ...

  8. Hibernate框架的基本搭建(一个小的java project的测试向数据库中插入和查询数据的功能)

    Hibernate介绍:Hibernate是一种“对象-关系型数据映射组件”,它使用映射文件将对象(object)与关系型数据(Relational)相关联,在Hibernate中映射文件通常以&qu ...

  9. 自定义cell

    思路就是创建模型,自定义cell,然后在主控制器中完成,首先要观察plist文件: Contact.h #import <Foundation/Foundation.h> @interfa ...

  10. windows 编程中的常见bug

    错误 1 :   error LNK2001: 无法解析的外部符号 _WTSQueryUserToken@8 解决办法:   ——>查看链接器->输入->附加依赖项,依照debug模 ...