Open File in Solution
快捷键Alt+Shift+O,可以通过过滤条件快速打开某个文件.在解决方案中包含大量文件或者你记不清完整的文件名时,这个功能非常有用,比如在修改问题单时,别人告诉你修改了哪个文件,你就是不知道这个文件放在哪个文件夹中的,相当地郁闷.通过这个功能就好找了.
(当快捷键时,首先用启用大拇指,如果不够再启动无名指,呵呵,否则有时按起来很别扭
Ctrl+C时,Ctrl用大拇指
Alt+C时,Alt用大拇指
Shift+C是,Shitf用无名指
Alt+Ctrl+C时,Alt用大拇指,Ctrl用无名指
Ctrl+Shift+C时,Ctrl用大拇指,Shift用无名指
Alt+Shift+C时,Alt用大拇指,Shift用无名指
)
Find Symbol
快捷键Alt+Shift+S,可以通过过滤条件快速定位到你要找的symbol所在位置.在你记不清一个symbol的完整形式但隐约地记得一丁点关键字时,通过过滤,你能更容易找到你想找到的symbol.
Find References
将光标放在一个symbol上,点击"Find References",在对应的窗口中就会显示整个解决方案中对该symbol所有的引用.
但快捷键是什么呢?
F8,Shift+F8在找到的结果中移动
用途:
1.Using Find References to track your task list
Instead of using comments simply add some #define's to a convenient header file, e.g.
#define VA_MARKER_TAG(description)
#define VA_TODO_TAG(description)
#define VA_FIXTHIS_TAG(description)
And then use them in your source code, like this:
VA_MARKER_TAG("still working on this");
void FooBar()
{
}
VA_FIXTHIS_TAG("this needs to be fixed - it won't compile");
void BarFoo()
{
return 0;
}
VA_TODO_TAG("write the body for this");
void Baz();
2.看起来此功能跟我最习惯用的搜索功能差不多.网站上的说法:This command saves time searching, and provides much more efficient access to symbols than Find in Files.
Find Previous by Context
Find Next by Context
快捷键?
当光标放在某个symbol时,可以通过这两个命令方便地找到该symbol出现的下一个地方.有时非常有用,我都是用搜索代替,太土了.(除了对于前面有#的不灵外,比如#include,其他的特别是变量名,函数名等都很灵)
///
Insert VA Snippet
其实我们写代码经常都需要插入相同的代码,有了这个功能我们就不用每次都重新写了,很方便,最重要的就是我们要准备好模板.
除了在界面中编辑模板之外,还可以直接在\Visual Assist X\AutoText\Latest\Cpp.tpl中修改,当然我们可以通过保存这个文件以保存我们编辑好的模板.
重点需要研究透?(如下)
其中一部分你只要按想输入的输入,VA就帮你显示出完整的Snippet了,比如#define(你输入#d就可以了,因为#d刚好是#define代码片的Shortcut),这部分不用记。
#include <$end$> 当你输入#in时,如果你选择了这个代码片,$end$表示最后光标的位置,这样你就可以方便地继续输入剩下的了。
#if defined($end$)
$selected$
#endif
表示根据选中的代码生成如上格式的代码片,还有很多根据选中然后做一个动作的,比如_T($selected$)$end$,atoi($selected$)$end$等等
nn 当在编辑界面输入Shortcut nn时,就可输入 != NULL,这部分需要记记,第一个n表示不等,后面一个表示NULL,类似的还有n0,n1,nt,nf等等
/*-
forr 这个在写for循环时很有用,特别是写迭代器时
除了使用预定义的,我们还可以自己写,一个比较关键的需要理解的是, $name$代表需要输入一个参数,除非这个name是VA知道的,比如selected,end,clipboard等,否则你在插入这个代码片的时候它会弹出来一个对话框,让你输入内容填充$name$占的那个地方。我写了一个<$fjfjf$>的例子试了试,果然是这样的。
///
Spell Check
这个功能我觉得没有多大用,但是网站上提到了词典可以从http://wiki.services.openoffice.org/wiki/Dictionaries下载,这个信息可能更加有用,以前我还从金山词霸提取词典,真没前途.
Open Corresponding File
快捷键Alt+O,很不错的功能
Refractor下的各子命令:
Add Member...
当光标在一个类名上时菜单有效,可以方便地为类添加成员变量(用VS2005的向导加太慢),如果添加方法的话,好像有点问题.
Add Similar Member...
当光标在一个成员的声明所在行时菜单有效,它复制所在行让你方便地修改后生成新的成员.
Create Declaration
当光标在一个函数的实现行时菜单有效,它可以根据函数实现在头文件中添加对应的声明.
Create Implementation
当光标在一个函数的声明行时菜单有效,它可以根据函数声明在对应的cpp文件中添加对应的函数实现.
Change Signature...
当光标在一个函数声明上时菜单有效,此时你可以修改函数的声明,并且对应的实现它也会为你一起修改
Change Visibility...
不知道有什么用?
Document Method
光标在一个函数上时菜单有效,相当于添加函数注释
Incapsulate Field
光标在一个成员变量上时菜单有效,相当于给一个成员变量添加内联的Get/Set方法,例如
int m_i;
int I() const { return m_i; }
void I(int val) { m_i = val; }
Extract Method...
当选中多行语句时菜单有效,相当于把选中的语句提取出来做成一个函数
Move Implementation to Source File
当光标在头文件中的内联函数名上时菜单有效(比如Extract Method...生成的函数就是内联的),将实现放到cpp文件中,并且保留头文件中的声明
Rename
当光标在变量名或函数名上时菜单有效,你可以更改名字,并且可以同步到所有用到这个名字的地方
现在终于理解为什么叫重构了,因为重构时需要经常做上面的这些操作,如这些操作就属于重构Refractor.
总结:
VA的主要功能都在上面了,没有具体提及的就是VA的选项中的一些设置,一般我们采用默认值就可以了,重点是Insert VA Snippet部分,如果用起来可以少些很多代码.
待完善!
列出本文档中的函数的快捷键是Alt + M
打开最近剪贴板中的内容以便进行粘贴Ctrl+Shit+V 这个有时很有用,在重构TCE的时候我就经常一会儿拷贝这个一会儿拷贝那个进行粘贴,就应该用这个功能
Go按钮对于的快捷键Alt + G
You can use Alt+Down Arrow and Alt+Up Arrow to move to the next or previous method. Move to the next outermost scope when inside a method.
光标在函数内的话,则移动到函数的开头或结尾。光标在函数名或{行,就移动到另一个函数。当函数很大时,这个功能很有用,有时他妈的要滚动好久才能找到函数名,有这个功能就容易多了
You can click on any symbol and see its context at the top of your source window. See your current scope when not on a symbol.
以前要看一个变量的类型时都是用Go去看,其实在源代码编辑窗口的顶部中就可以看到,根本不需要Go,妈的!浪费时间了!
快捷键Alt+Shift+O,可以通过过滤条件快速打开某个文件.在解决方案中包含大量文件或者你记不清完整的文件名时,这个功能非常有用,比如在修改问题单时,别人告诉你修改了哪个文件,你就是不知道这个文件放在哪个文件夹中的,相当地郁闷.通过这个功能就好找了.
(当快捷键时,首先用启用大拇指,如果不够再启动无名指,呵呵,否则有时按起来很别扭
Ctrl+C时,Ctrl用大拇指
Alt+C时,Alt用大拇指
Shift+C是,Shitf用无名指
Alt+Ctrl+C时,Alt用大拇指,Ctrl用无名指
Ctrl+Shift+C时,Ctrl用大拇指,Shift用无名指
Alt+Shift+C时,Alt用大拇指,Shift用无名指
)
Find Symbol
快捷键Alt+Shift+S,可以通过过滤条件快速定位到你要找的symbol所在位置.在你记不清一个symbol的完整形式但隐约地记得一丁点关键字时,通过过滤,你能更容易找到你想找到的symbol.
Find References
将光标放在一个symbol上,点击"Find References",在对应的窗口中就会显示整个解决方案中对该symbol所有的引用.
但快捷键是什么呢?
F8,Shift+F8在找到的结果中移动
用途:
1.Using Find References to track your task list
Instead of using comments simply add some #define's to a convenient header file, e.g.
#define VA_MARKER_TAG(description)
#define VA_TODO_TAG(description)
#define VA_FIXTHIS_TAG(description)
And then use them in your source code, like this:
VA_MARKER_TAG("still working on this");
void FooBar()
{
}
VA_FIXTHIS_TAG("this needs to be fixed - it won't compile");
void BarFoo()
{
return 0;
}
VA_TODO_TAG("write the body for this");
void Baz();
2.看起来此功能跟我最习惯用的搜索功能差不多.网站上的说法:This command saves time searching, and provides much more efficient access to symbols than Find in Files.
Find Previous by Context
Find Next by Context
快捷键?
当光标放在某个symbol时,可以通过这两个命令方便地找到该symbol出现的下一个地方.有时非常有用,我都是用搜索代替,太土了.(除了对于前面有#的不灵外,比如#include,其他的特别是变量名,函数名等都很灵)
///
Insert VA Snippet
其实我们写代码经常都需要插入相同的代码,有了这个功能我们就不用每次都重新写了,很方便,最重要的就是我们要准备好模板.
除了在界面中编辑模板之外,还可以直接在\Visual Assist X\AutoText\Latest\Cpp.tpl中修改,当然我们可以通过保存这个文件以保存我们编辑好的模板.
重点需要研究透?(如下)
其中一部分你只要按想输入的输入,VA就帮你显示出完整的Snippet了,比如#define(你输入#d就可以了,因为#d刚好是#define代码片的Shortcut),这部分不用记。
#include <$end$> 当你输入#in时,如果你选择了这个代码片,$end$表示最后光标的位置,这样你就可以方便地继续输入剩下的了。
#if defined($end$)
$selected$
#endif
表示根据选中的代码生成如上格式的代码片,还有很多根据选中然后做一个动作的,比如_T($selected$)$end$,atoi($selected$)$end$等等
nn 当在编辑界面输入Shortcut nn时,就可输入 != NULL,这部分需要记记,第一个n表示不等,后面一个表示NULL,类似的还有n0,n1,nt,nf等等
/*-
forr 这个在写for循环时很有用,特别是写迭代器时
除了使用预定义的,我们还可以自己写,一个比较关键的需要理解的是, $name$代表需要输入一个参数,除非这个name是VA知道的,比如selected,end,clipboard等,否则你在插入这个代码片的时候它会弹出来一个对话框,让你输入内容填充$name$占的那个地方。我写了一个<$fjfjf$>的例子试了试,果然是这样的。
///
Spell Check
这个功能我觉得没有多大用,但是网站上提到了词典可以从http://wiki.services.openoffice.org/wiki/Dictionaries下载,这个信息可能更加有用,以前我还从金山词霸提取词典,真没前途.
Open Corresponding File
快捷键Alt+O,很不错的功能
Refractor下的各子命令:
Add Member...
当光标在一个类名上时菜单有效,可以方便地为类添加成员变量(用VS2005的向导加太慢),如果添加方法的话,好像有点问题.
Add Similar Member...
当光标在一个成员的声明所在行时菜单有效,它复制所在行让你方便地修改后生成新的成员.
Create Declaration
当光标在一个函数的实现行时菜单有效,它可以根据函数实现在头文件中添加对应的声明.
Create Implementation
当光标在一个函数的声明行时菜单有效,它可以根据函数声明在对应的cpp文件中添加对应的函数实现.
Change Signature...
当光标在一个函数声明上时菜单有效,此时你可以修改函数的声明,并且对应的实现它也会为你一起修改
Change Visibility...
不知道有什么用?
Document Method
光标在一个函数上时菜单有效,相当于添加函数注释
Incapsulate Field
光标在一个成员变量上时菜单有效,相当于给一个成员变量添加内联的Get/Set方法,例如
int m_i;
int I() const { return m_i; }
void I(int val) { m_i = val; }
Extract Method...
当选中多行语句时菜单有效,相当于把选中的语句提取出来做成一个函数
Move Implementation to Source File
当光标在头文件中的内联函数名上时菜单有效(比如Extract Method...生成的函数就是内联的),将实现放到cpp文件中,并且保留头文件中的声明
Rename
当光标在变量名或函数名上时菜单有效,你可以更改名字,并且可以同步到所有用到这个名字的地方
现在终于理解为什么叫重构了,因为重构时需要经常做上面的这些操作,如这些操作就属于重构Refractor.
总结:
VA的主要功能都在上面了,没有具体提及的就是VA的选项中的一些设置,一般我们采用默认值就可以了,重点是Insert VA Snippet部分,如果用起来可以少些很多代码.
待完善!
列出本文档中的函数的快捷键是Alt + M
打开最近剪贴板中的内容以便进行粘贴Ctrl+Shit+V 这个有时很有用,在重构TCE的时候我就经常一会儿拷贝这个一会儿拷贝那个进行粘贴,就应该用这个功能
Go按钮对于的快捷键Alt + G
You can use Alt+Down Arrow and Alt+Up Arrow to move to the next or previous method. Move to the next outermost scope when inside a method.
光标在函数内的话,则移动到函数的开头或结尾。光标在函数名或{行,就移动到另一个函数。当函数很大时,这个功能很有用,有时他妈的要滚动好久才能找到函数名,有这个功能就容易多了
You can click on any symbol and see its context at the top of your source window. See your current scope when not on a symbol.
以前要看一个变量的类型时都是用Go去看,其实在源代码编辑窗口的顶部中就可以看到,根本不需要Go,妈的!浪费时间了!