zoukankan      html  css  js  c++  java
  • Source Insight 支持汉字和.s汇编文件

    一、解决汉字乱码的问题。要解决这个问题,就是要调整字体为宋体。方法如下

        选择【Options】→【Styles Properties...】,打开设置对话框,在左边栏找到【Comment】,设置【Font Name】的值为"宋体"即可。Szie的值根据实际需要自由设置。
        设置后之后再注释中就可以正常输入中文了,字距也显示正常。
     
    二、解决按"Backspace"键是,只能删除半个汉字的问题。通过定义一个宏文件实现。
        先关闭当前项目,选择【project】→【Open project...】,打开项目对话框,选择"Base"工程并打开。新建一个SuperBackSpace.em的宏定义文件内容如下,这个宏定义文件的内容是网友提供的。
    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;
    }
        把SuperBackSpace.em文件复制到Base工程的工程目录下。选择【Project】→【Add and Remove Project Files...】打开对话框,加入SuperBackSpace.em文件。
        选择【Options】→【Key Assigments...】打开按键分配对话框,找到宏定义中的"Macro:SuperBackSpace"并用鼠标单击选中,按下【Assign New Key...】按钮,在弹出了一个新的对话框后按照提示,在键盘上按下"←Backspace"键即可。
        此时再按一下退格键,可以成功删除一个汉字了。但是用数遍选择注释中的汉字时,仍然可以选中半个汉字,此时显示为乱码。而用左右箭头键移动光标时,仍然可以移动到一个汉字的半中间,就是说移动光标仍然是半个汉字为单位。

        另外。在base 项目中选中 SuperBackspace.em 本身,在下面的Context窗口中可以看到该文件的内容,这个文件开头的部分是中文注释,显示为乱码,在Context中右键单击,改变字体为宋体,仍然会显示乱码,汉字有的能正常显示,有的则不能。所以经过以上努力,Source Insight对汉字的支持有所改进,但是还是不太如人意。

     
    三、在Souce Insight加入".S"汇编文件。
        在【Options】→【Document Options...】里面,点左上的【Document Type】下拉菜单,选择【x86 Asm Source File】,然后在右边的【File filter】里*.asm;*.inc;的后面加上*.s;*.S 接着CLOSE就可以了。这样就可以ADD TREE时把这些汇编加到PROJECT里面。
        在【Options】→【Document Options...】里面,点左上的【Document Type】下拉菜单,选择【C Source File】,然后在右边的File filter里补上*.s,*.S就可以像看C一样看汇编,显示高亮了。
  • 相关阅读:
    nginx日志模块及日志定时切割
    Nginx学习笔记
    Nginx负载均衡和反向代理
    python--inspect模块
    Python--sys
    Docker 中 MySQL 数据的导入导出
    分布式监控-open-falcon
    《转载》脚本实现从客户端服务端HTTP请求快速分析
    《转载》日志大了,怎么办?用我的日志切割脚本吧!
    《MySQL》一次MySQL慢查询导致的故障
  • 原文地址:https://www.cnblogs.com/luster/p/2968759.html
Copyright © 2011-2022 走看看