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. 个人总结 HTML+CSS

    从大一下学期接触,一直到今年,接触的时间也挺长的了,最近一些认识的盆友和同学说是想学习前端,自己也开始慢慢停下脚步,不再拼命地去学很多框架的东西,回归到基础,慢慢把基础打牢 很多知识碎片一直来不及整理 ...

  2. JavaScript焦点轮播图

    在慕课学习了JavaScript焦点轮播图特效,在此做一个整理. 首先是html结构,我用的是本地同文件夹下的三张图片,多出来的第一张(pic3副本)和最后一张图片(pic1副本)是为了实现无缝切换效 ...

  3. SharePoint 2013 术语和术语集介绍

    托管元数据是一个集中管理的术语的分层集合,我们可以定义术语和术语集,然后将其用作 SharePoint Server 2013 中项目的属性.简单的说,术语是一个可与 SharePoint Serve ...

  4. 内置对象Clob对从数据库表中取的字符大对象CLOB类型的列值进行读取操作

    package readclobDemo.bao; import java.io.IOException; import java.io.Reader; import java.sql.Clob; i ...

  5. 【原】error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string'

    今天遇到一个非常难以排查的BUG,谷歌度娘都问过了依旧无解,最后自己重新尝试之后找到解决方案: 先看一下报错信息: 1>.\lenz.cpp(2197)  error C2679: binary ...

  6. 【转】Visual Studio 非常实用的调试技巧

    下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入 ...

  7. Unity3D插件分享

    网上看到一个讲unity3D插件的,看着不错,转载过来. 本文汇总了近百个Unity3D插件,供大家参考下载. 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ...

  8. Cron 表达式详解和案例

    1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许 ...

  9. python 连接 mysql

    http://blog.csdn.net/yelbosh/article/details/7498641 数据库的连接 模块引入之后我们就需要和数据库进行连接了,实例代码如下: db = MySQLd ...

  10. docker-1 初识docker

    五分钟认识docker 什么是docker? 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(App ...