zoukankan      html  css  js  c++  java
  • vc2005(visual studio)使用习惯记录

    来源:http://blog.csdn.net/zdl1016/article/details/6184549

    前言:
    sourceinsight不支持显示utf-8的文件, 实在是一大遗憾!
    vim现在虽然研究的可以支持 查找函数定义, 查找函数的引用地方, 自动补全, 自动提示成员结构等, 但是实际编码的时候, 还是感觉效率比较低, 还是祭出我之前使用最对哦的vs2005吧.

    如何向visual studio里面批量增加文件?
    1) 通过, 添加现有文件到项目, visual studio不像si那样, 可以直接递归添加文件目录树.  但是可以通过windows自带的资源管理器,直接将一个目录树拖进解决方案. 就可以批量添加了.
    2) 通过1)的方法添加的弊端时, 当目录树中文件又更新时, vs不像si那样能自动更新. 必须手动添加. 可以一次批量添加目录内的全部文件, 会自动仅添加那些没有包含在解决方案中的文件.


    为什么有的时候,突然不会智能提示成员函数了?
    这可能是因为你的代码中含有语法错误.
    举例1:
    open_info.skey = 'xx';
    api. // 这时候不会提示成员函数, 是因为上面的字符串 xx 语法错误, 应该是双引号 "xx"

    举例2:
    int CXXX::Init();

        api. // 这个时候不会提示, 是因为上面的Init() 后面多了个分号";".
    }

    举例3:

    int CXXX::Init();

        api. // 这个时候不会提示, 可能是因为 api的类的声明里面没有对应的方法(通常是忘了加了.), 虽然在api类的实现里面有. 这里假设, api类的声明和实现是分开两个文件.
    }

    在visual studio下使用vim的操作习惯.
    下载visual studio的VsVim插件. 安装即可.
    注意: 可能是由于按键映射的缘故, 安装了vivim之后, vc助手的很多功能就用不了了, 比如查找refactor-find references
    想停用VsVim插件也很简单. 选项-ViEmu-Enable ViEmu

    关于vc助手不能查找符号的解决办法
    重建符号数据库. vc助手选项-performance-rebuild(symbol database)

    Visual Studio 2010中文旗舰版及Visual Assist X插件10.6.1823破解版    
    http://hi.baidu.com/%E2%C8%C2%F8%CD%B7%C9%E7%C7%F8/blog/item/d5149125cc1940198b82a1d0.html

    关于 不能够智能提示 标准模板库 的类成员函数的解决办法
    由于来自linux下的模板库有很多重宏定义, 默认标准模板库的名字空间不是std, 而是_GLIBCXX_STD.
    而vc助手实在太聪明了, 你若不写或者写错了名字空间, 他也将不提示.
    1) 使用带命名空间的写法 eg:
        std::vector<int> ivec;
        ivec.push_*** // 此时就会提示了.

    2) 将标准模板库里面的_GLIBCXX_STD 全部替换为 std, 让vc助手再重新解析一遍符号即可. // 没有完全尝试过.
    3) 貌似将vc助手升级到高版本之后就好了, // 试验结论: 10.6.1854.0 可行 build 2011.07.18

    关于 visual studio 右键跳转到定义提示 "未定义符号" 的解决
       使用vcassist助手的 find reference 功能. 比vc2005自带的查找引用等功能强大很多.
       右键 => refactor => find reference.


    当使用Visual Studio 2008开发工具,对代码进行注释时出现文件下方显示红色下划线,根据分析是由于使用了拼写检查导致的错误。
    解决方法:这其实是vc助手导致的,取消拼写检查即可.
    单击菜单“VAssistX” --> “Visual Assist X Options”弹出选项对话框,去除“UnderLine spelling errors in comments and st”的勾号,如图所示:

     

    vc2005的utf-8编码问题
    1) 默认对于utf-8的文件, 显示乱码, 可以做如下的设置使之不乱码:
        选中: tools-options-text editor-"auto-detect utf-8 encoding without signature" 

    2) 对于任何新建的文件, 默认都是gb2312, 你需要另存为一次,  才能使之变成utf-8

        另存为的时候, 保存的右边有个小按钮, 可以修改文件编码.
        也可以用editplus工具修改. 不过能支持显示utf8已经比sourceinsight好一百倍了. 
        注意!!! 使用该方式保存的utf-8在linux下面的无法编译!!!

    3) 如何让visual studio新建的c/c++文件 默认都是utf-8编码呢?
       答案是, 在visual studio的安装目录, 有一个新建的c/cpp文件模版, 只要把这两个文件里面随便写上几个中文字符, 并且保存为utf-8编码的.
       当下次用visual studio新建c/c++文件时, 都默认是utf-8编码啦.
       ps: visual studio使用的模版文件的路径:
       D:Program FilesMicrosoft Visual Studio 9.0VCvcprojectitems ewc++file.cpp
       D:Program FilesMicrosoft Visual Studio 9.0VCvcprojectitemshfile.h

    4) 为什么我的vc2005设置了默认自动识别utf-8的文件, 打开一个文件还是显示好多乱码?

    答: 这是因为如果一个文件同时混杂了utf-8和gb2312的编码!!!.比如用sourceinsight编辑utf-8编码的文件,就会导致此种情况!
    解决思路: 删除其中一种编码的字符, 使文件仅保留一种编码的字符!
        然后使用编码转换工具转换为你想要的编码. 同时两种编码都具有的文件, 转换工具会转换失败.

    解决方法一:
       sourceinsight只识别gb2312编码
       用sourceinsight打开, 可以看到gb2312编码的字符, utf-8的字符为乱码. 
       删除所有utf-8的编码, 使之成为一个纯gb2312编码的文件.
       然后使用 iconv工具 把该文件从gb2312转为utf8

    解决方法二:

       设置vim只识别utf-8编码
       设置vim的编码而是为如下: 
       set fileencodings=ucs-bom,utf-8,cp936,gb18030 
       这样utf-8排在前面, 默认会使用utf-8打开, 如果没有用utf-8打开, 则把cp936,gb18030 都删掉.仅保留utf-8
       适用于文件中utf-8编码的内容较多, 只有少量的gb2312编码的文字,
       强制用utf-8打开. 把其中乱码的部分删掉(乱码都是gb2312)即可.

    显示行号(未验证)
    工具--选项...--文本编辑器(TextEditor)--C++--常规,显示(Display)--“行号”(Line Numbers)

     
    快速查找
    .查找 CTRL + F 显示“查找”对话框。    
    .在文件中查找 CTRL + SHIFT + F 显示“在文件中查找”对话框。    
    .CTRL+I 直接查找当前光标下单词 
    .CTRL+SHIFT+I 反向查找
    .查找下一个 F3 (首先要先用CTRL+F查找一下当前关键字)

    装上VC助手,可实现souceinsight的大部分功能
    装上VC助手之后,会在左侧出现VC View和VC Outline,下方会出现Code Defination Window非常好用。不亚于sourceinsight。

    VC Outline:实现类似与souceinsight的左侧类成员变量宏等Outline导航
    VC View:类似与souceinsight右侧的直接输入部分关键字在整个解决方案中搜索对应的文件的功能。
    Code Defination Window:类似于SourceInsight的即时查看结构体的功能。鼠标放在一个变量上,该快速预览窗口会显示对应的结构体定义
    如果该窗口没了,可以在View=>Code Defination Window重新找回来。

    让VC提示linux的头文件库函数

    1) 将linux的/usr/include 目录下文件打包, copy的windows的D:/usr/include目录下
    2) 将VC2005的IDE的包含路径的自带的全部去掉,

    $(VCInstallDir)include

    $(VCInstallDir)atlmfc/include

    $(VCInstallDir)PlatformSDK/include

    $(FrameworkSDKDir)include
    3) 把linux的库头文件增加D:/usr/include到 IDE的头文件包含路径中.
    4) 进入VX(VC助手)的 的选项界面:VAssistX=>Visual Assist X Options=>Peformence=>Rebuild(sambol databases)

    5) 重启IDE
    6) 此时写代码 比如 epoll_create 应该还是不能智能提示出来.
    7) 在当前解决方案下新建一个linux_usr_include的项目.
        把你使用到的相关的linux的头文件加到这个这个项目来, 此时VX会自动解析加载进来的文件. 测试应该就没问题了.!!!
    8) 将linux_usr_include路径加入到当前项目的头文件包含路径中:
        在左侧导航栏的项目上右键-属性-配置属性(configuration property)-C/C++-Additional Include Directories
        这使得,可以打开指定的头文件.

       好爽啊, pthread_create, sleep, epoll_create, recvfrom等都可以智能提示了.

    这两个也可以不用,毕竟鼠标右键就出来了
    F12 转到定义 
    CTRL + F12转到声明

    Ctrl+J:List members,当正在写代码时,写到一个类的内部成员时,而此时,编译器又没有提示时,用定位错误:F4

    Comment Selection/Comment a line: Ctrl+K+C
    uncomment Selection:Ctrl+K+U

    CTRL + -向后定位 
    CTRL + SHIFT + -向前定位 
    CTRL + F4关闭文档窗口 

    //////////////////////////////////////////////////////////////////////////
    VS2003 实用快捷键.这些快捷键都是老子经常用到的...呵呵.
    shift+F11:debug时跳出当前函数
    ctrl+alt+Q:在debug单步执行时期,查看光标所在位置的变量的内部值!!!此快捷键相当重要.

    CTRL+I:实时搜索.直接输入函数名进行搜索
    CTRL+J,调出提示窗口,Eg:pWnd->(这里用CTRL+J)

    Bookmark:ctrl+k+k;
    previous bookmark crl+k+p
    next bookmark ctrl+k+n
    Clear all bookmarks Ctrl+K,L
    watch param info:ctrl+shift+space
    quick info:ctrl+k+i
    Stop dubugging F7
    alt+right arrow 完成全字的拼写.
    Ctrl+F11:切换到所汇编,与源文件。
    F7,编译/停止调试。->F5不编译直接运行
     
        
    定位到查找输入框 Ctrl+d  

    navigate backward:CTRL+-
    navigate forward:ctrl+shift+-
    快速光标左右移:CTRL+leftArrow,CTRL+rightArrow
    光标不动,屏幕滚动CTRL+UPArrow,DownArrow.
    Ctrl+R+R:将当前屏内所有太长一行代码分为两行.

    让那些查找窗口,output窗口等,在需要的时候自己出来,,不需要的时候隐藏。(通过窗口左上角有个定位的tag,单击一下即可,就像,VC的属性页的位置可定可不定一样。)

    所有内容以outline显示:toggle all outline.一块outline:ctrl+M. 

  • 相关阅读:
    Spring9:Autowire(自动装配)机制
    【Spring源码分析】非懒加载的单例Bean初始化前后的一些操作
    记一次synchronized锁字符串引发的坑兼再谈Java字符串
    Cglib及其基本使用
    Java回调机制解读
    【设计模式总结】对常用设计模式的一些思考
    【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)
    【Spring源码分析】非懒加载的单例Bean初始化过程(上篇)
    【Spring源码分析】Bean加载流程概览
    Spring8:一些常用的Spring Bean扩展接口
  • 原文地址:https://www.cnblogs.com/yunlong3727/p/3181502.html
Copyright © 2011-2022 走看看