sourceinsight的使用记录

在windows下开发linux程序,使用vc2005有点大材小用,用linux下的vim吧,又有很多的记忆负担。

那就用sourceinsight吧。

文件目录树怎么切换磁盘?
直接在文件搜索栏里面输入D: 就会切换到D:盘。

0) 跳转的函数定义处
   ctrl + =
   跳转到函数原型: ???

1){}符号的自动缩进。换行时,默认是 在上一行左端向右缩进一个tab,但我想让对齐,怎么办?
         新开一个PROJECT后,点Options->Document Options,弹出对话框后先在左上角选好要用的Document Type,主要就是设C Source File和C++ Source File,选好后点右边中间的Auto Indent调整缩进。单选里一定要点Smart,右边有两个复选框Indent Open Brace和Indent Close Brace,具体效果是如何的可以看SIS的HELP。

    勾选Auto Indent和SMART的效果: 在C程序里, 如果遇到行末没有分号的语句,如IF, WHILE, SWITCH等, 写到该行末按回车,则新行自动相对上一行缩进四列.

    勾掉indent Open Brace和Indent Close Brace的效果: 继上一段,在相对缩进行里, 如果输入"{"或"}", 则自动和上一行列对齐。
参考:http://blog.csdn.net/yjzl1911/archive/2010/06/13/5669037.aspx

2)跳转到最近编辑过的地方 有点像 vc2005的 ctrl+<- 和 ctrl+->.
    si的跳转快捷键是:alt+,alt+. 分别是 alt+逗号和 alt+句号!

3) 跳到指定行 ctrl+g, 这和vc2005一致

4) F3向上搜索,F4向下搜索
    shift+F4: 快速搜索. 不用调出搜索界面,双击关键字选择关键字即可搜索.

5) 快速注释/取消注释代码段
    好像没有内置这样的功能,使用 #if 0 #endif 吧

6) 如何开一个函数 的左大括号 { 跳转到函数结束的 右大括号位置 }
   vc2005 我记得是 直接 输入 ctrl+}就会在两个{}之间来回跳转

到块的下面                           : Ctrl+Shift+]

到块的上面                           : Ctrl+Shift+[

     另外,si双击{会选中函数的全部内容

 

7)检查引用                             : Ctrl+/
这个功能非常有用哦,就像vc2005里面的查找所有引用

 8)列操作

  虽然开篇时就说过,SI的列操作功能比较弱,但不等于没有。先按下Alt键,接着就可用鼠标进行列选择,然后就可以删除指定的列
 
  9)

Shift+F8

高亮显示指定标识,快速浏览标识的使用情况。

10)
  项目-项目设置-选中在数据库中存储局部函数符号。 不管那么多,选中即可。
  选项-参数设置-符号查找-项目符号路径-添加项目到路径。可以把之前建立好的linux内核头文件项目加到这里的符号路径, 这样你写代码是,比如 str 会自动提示 strcmp strcpy等等东西, 而且可以直接看到函数原型,功能一点不次于vc2005!

11) 让source insight 显示文件的全路径
   写代码时,实时的知道当前编辑的文件是硬盘上的哪个文件时非常有必要的,不然万一编辑错了怎么办?特别是在有同名文件的时候. 这点vc2005就非常好,在标签上右键就可以打开文件位置.
   si也可以满足你.  只是不能打开文件位置.
   选项-参数设置-显示, 取消选中 "用省略号修剪长路径名"(该选项出现在倒数第二行).

12) 如何更高效的使用查找引用, 切换到下一个引用,上一个引用?
   当使用查找引用功能时,会弹出一个查找结果页面,页面的左侧有个小按钮,可以调到引用的实际位置。但是每次看完一个要回来才能看下一个很不方便,其实,在工具栏上有两个小按钮,可以跳到下一个引用和上一个引用。并且 Alt+F9  可以直接跳转到下一个。
    另外,查找引用的时候,还是用“简单字符串”模式查找比较靠谱吧,速度慢点,我用另外一个默认总是找到漏掉几个,不爽!

 
13)
  关于删掉半个汉字的问题
  网上流传一个 *      猪 哥  作 品可以解决该问题,方法如下:

 a)记事本编辑另存为:SuperBackspace.em 即可。
 b) 由于我的si是绿色的,没有Base项目, 只有自己在 D:/我的文档/Source Insight/Projects/Base 路径下新建一个 Base项目。
 c)将SuperBackspace.em 加入到当前
base项目中来。
     方法如下:
     c.1)选项-文档选项-解析-语言-SI Macro Language, 然后选择上面 文档类型-Source Insight 宏文件, 文件过滤器里面是 *.EM 
     c.2)然后找到 superasespace.em添加进来。 确保在右侧的文件列表里可以看到
 d)重启SI
 e)添加键映射,选项-键关联-在左侧的列表里找到 “宏:SuperBackspace”, 点击分配新建,按键盘的 Backspace键,击键出出现 Backspace。ok
 f)试试删除半个汉字是否ok了?
    
/**
 *       ╭︿︿︿╮
 *       {/ . ./}
 *       (  (oo)  )
 *        ︶︶︶︶
 *      猪 哥  作 品
 *
 * 2006 丁兆杰 Ding Zhaojie
 * [email protected]
 *
 * SuperBackspace Version 0.1beta
 *
 * 代替SourceInsight原有的Backspace功能(希望如此)
 * 增加了对双字节汉字的支持,在删除汉字的时候也能同时删除汉字的高字节而缓解半个汉字问题
 * 能够对光标在汉字中间的情况进行自动修正
 *
 * 安装:
 * ① 复制入SourceInsight安装目录;
 * ② Project→Open Project,打开Base项目;
 * ③ 将复制过去的SuperBackspace.em添加入Base项目;
 * ④ 重启SourceInsight;
 * ⑤ Options→Key Assignments,将Marco: SuperBackspace绑定到BackSpace键;
 * ⑥ Enjoy!!
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
macro SuperBackspace()
{
    hwnd = GetCurrentWnd();
    hbuf = GetCurrentBuf();

    if (hbuf == 0)
        stop;   // empty buffer

    // get current cursor postion
    ipos = GetWndSelIchFirst(hwnd);

    // get current line number
    ln = GetBufLnCur(hbuf);

    if ((GetBufSelText(hbuf) != "") || (GetWndSelLnFirst(hwnd) != GetWndSelLnLast(hwnd))) {
        // sth. was selected, del selection
        SetBufSelText(hbuf, " ");  // stupid & buggy sourceinsight :(
        // del the " "
        SuperBackspace(1);
        stop;
    }

    // copy current line
    text = GetBufLine(hbuf, ln);

    // get string length
    len = strlen(text);

    // if the cursor is at the start of line, combine with prev line
    if (ipos == 0 || len == 0) {
        if (ln <= 0)
            stop;   // top of file
        ln = ln - 1;    // do not use "ln--" for compatibility with older versions
        prevline = GetBufLine(hbuf, ln);
        prevlen = strlen(prevline);
        // combine two lines
        text = cat(prevline, text);
        // del two lines
        DelBufLine(hbuf, ln);
        DelBufLine(hbuf, ln);
        // insert the combined one
        InsBufLine(hbuf, ln, text);
        // set the cursor position
        SetBufIns(hbuf, ln, prevlen);
        stop;
    }

    num = 1; // del one char
    if (ipos >= 1) {
        // process Chinese character
        i = ipos;
        count = 0;
        while (AsciiFromChar(text[i - 1]) >= 160) {
            i = i - 1;
            count = count + 1;
            if (i == 0)
                break;
        }
        if (count > 0) {
            // I think it might be a two-byte character
            num = 2;
            // This idiot does not support mod and bitwise operators
            if ((count / 2 * 2 != count) && (ipos < len))
                ipos = ipos + 1;    // adjust cursor position
        }
    }

    // keeping safe
    if (ipos - num < 0)
        num = ipos;

    // del char(s)
    text = cat(strmid(text, 0, ipos - num), strmid(text, ipos, len));
    DelBufLine(hbuf, ln);
    InsBufLine(hbuf, ln, text);
    SetBufIns(hbuf, ln, ipos - num);
    stop;
}
 
xx)

  本来以为自己对source Insight的使用还算熟练的,结果发现它还支持这么多先进的以前没玩过,或者以为它实现不了的功能。非常棒!!

  关于sourceInsight3.5的缩进问题和库函数补全问题。

  由于vc自动缩进很智能,而且编写库函数能自动提示补全函数名并提示参数组成,很方便。

  今天研究得出SourceInsight3.5也可以实现这两个效果。

  1. Preferences->Symbols Lookups:Add Project to Path... 选择"D:/Program Files/Microsoft Visual Studio6.0/VC98/Include后它默认取名为CStandard.PR,点加入所有头文件确定后就可以看到Project symbol path:下面的文本框里面多了一个字符串"D:/Program Files/Microsoft Visual Studio6.0/VC98/Include/CStandard.PR",这样点确定后,以后所有的工程都可以自动补全库函数和看到库函数的原型了。

  2. Alt+T打开Document Options对话框,如果你是c++代码,那么选择c++类型,file filter下面输入框下面的两个复选框第一个Use options from Default type不要选中,一定不要选,要不indent调不对的,Editing Options下面的复选框选上:Allow auto-complete自动补齐功能,少打几个字而且补齐的可以避免不必要的输入错误,Expand tabs把tabs变换成空格,不同编辑器打开都统一了不会乱,Enter Key->new line回车建立新行,show line numbers显示行号看到代码很方便的,show right margin编写代码时候可以提醒自己不要一行不要太长及时换行,symbol window符号索引打开很好很强大,快速定位一个函数或者变量。

更多快捷键信息参考:
source insight快捷键及使用技巧
http://blog.csdn.net/hbd1986/archive/2010/01/27/5260727.aspx

你可能感兴趣的:(File,文档,character,tabs,linux内核,Numbers)