在 C++ 中的导航和搜索
按名称导航
ReSharper 可以通过几个按键将您带到任何代码项或文件。 导航范围包括整个解决方案中的符号和文件,以及标准库、外部依赖项中的所有符号和文件。
按名称查找解决方案中的代码项
要使用统一的搜索结果访问方式,请按 Control+N 显示一个弹出窗口,您可以在其中开始输入并找到与您的输入匹配的 解决方案中的代码项。
如果您想将搜索限制为类型(类、接口、结构或枚举),请按 Control+N 两次。
如果您想 通过纯文本匹配查找任何内容 ,请按 Control+N 三次。
如果您想 搜索符号 (类型、方法、属性、字段等),请按 Shift+Control+Alt+N。
您还可以通过按 Shift+Control+N 仅搜索文件。
ReSharper 还允许您通过按 Control+F12 后输入名称, 跳转到当前文件中的类型和类型成员。
调用上述任何命令后,开始输入目标项、其 CamelHumps 缩写和/或通配符。 匹配项列表会随着您的输入逐渐缩小,最可能的候选项会显示在列表的顶部。
一旦目标项出现在列表中,您可以选择它以在编辑器中打开。 要在 查找结果 窗口中查看并 分析匹配项列表,请单击 在“查找结果”中显示
,按
Shift+Enter
或数字键盘上的
+
。
ReSharper 可以记住您使用 全局搜索/转到类型、 转到符号、 转到文件 和 转到文本 操作查找内容时的最后输入。 要启用或禁用此行为,请使用 ReSharper 选项页面上的 记住上次搜索 复选框 。 选择此选项后,ReSharper 还会将您在编辑器中的当前选择用作初始搜索查询。 例如,您可以在字符串中选择一个文件名,然后按 Shift+Control+N 搜索解决方案中与该名称匹配的文件。
转到声明
使用此命令从任何符号用法导航到符号的声明。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。
要以相反方向导航(符号用法),当您已经 在符号声明上 时,可以调用 转到声明 命令,或者使用 转到符号的用法 命令。
要转到符号声明,请按 Control+B ,选择主菜单中的 ,或按住 Ctrl 键单击符号。
转到声明适用于非依赖 decltype 修饰符和 lambda(跳转到 lambda 主体)。 您可以从声明跳转到签名不匹配的定义(例如,从更改后的成员函数声明跳转到其旧签名的定义),反之亦然。 转到声明在初始项目索引期间也可以使用。
转到声明还适用于未解析的标识符、注释和宏主体。 ReSharper 将找到所有名称匹配的符号,并允许您导航到它们。
在不受支持的 C++ 文件中(例如,C++/CX),转到声明会自动回退到相应的 Visual Studio 导航操作。
转到文件成员
使用此命令快速导航到当前文档中的特定类、函数或字段。
要导航到文件成员,请按 Control+F12 或从主菜单中选择 。
转到符号的类型
当 转到声明 命令将您导航到符号声明的位置时, 符号类型 命令将导航到当前选定符号的类型声明。 例如,如果您有一个变量 Foo myVar = new Foo(); 并在 myVar 的用法上调用此命令,它会将您带到类 Foo 的声明。 如果您在函数上调用此命令,它会导航到函数的返回类型。
此命令也适用于 typedef。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。
要导航到符号的类型,请按 Control+Shift+T 或从主菜单中选择 。
转到符号的用法
此命令允许您从符号的声明或任何其他用法快速导航到符号的特定用法。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。 相反的导航可以通过 转到声明 命令实现。
使用此命令获得的用法列表与 查找用法 的列表相同。 但对于用法数量有限的符号,当您正在寻找特定用法并希望直接跳转到该用法而无需打开 查找结果 窗口 时,此命令更为方便。
您可以配置 ReSharper 在发现单个用法时的行为。 默认情况下,用法会显示在弹出窗口中。 If you want ReSharper to jump tho the single usage in these cases, select the corresponding option (转到用法:如果只有一个结果,则直接导航而不显示列表) on the page of ReSharper 选项 Alt+R, O .
要转到符号的用法,请按 Control+Alt+F7 或从主菜单中选择 。
转到基符号
此命令允许您在继承层次结构中向上导航到当前符号的基类型或方法。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。
相反方向的导航可以通过 转到派生符号 和 转到实现 命令实现。
要导航到基符号,请按 Control+U 或从主菜单中选择 。
对于从其他类型继承或实现接口的类型,以及覆盖、实现或隐藏基类型成员的成员,ReSharper 会显示 特殊的边距图标 (例如,
)。 将鼠标悬停在图标上可以查看基符号并在继承层次结构中向上导航。
转到实现
此命令帮助您查找类型和成员的实际实现——换句话说,定位它们执行的源代码。 例如,从基类型或成员,您可以跳转到其最终实现,绕过继承链中的中间步骤;从接口成员的用法,您可以找到该成员被实现的所有位置。
您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。 如果需要,您可以使用 转到基符号 命令反向导航。
要导航到实现,请按 Control+Shift+Alt+B 或从主菜单中选择 。
转到派生符号
此命令获取类型或成员的所有派生符号列表,并允许您直接导航到其中一个,沿着继承层次结构向下。 如果您正在寻找实际实现而不关心继承链的中间步骤,请使用 转到实现。
要导航到派生符号,请按 Alt+Control+B 或从主菜单中选择 。
在头文件和源文件之间切换
对于所有具有单独声明和定义的符号,ReSharper 会在左侧显示 导航到声明/定义
操作指示器。 您可以单击此指示器或按 Alt+Enter 快速在符号的声明和定义之间切换。
还有更多方法可以在头文件和相应的源文件之间切换,反之亦然:
按 Alt+O 。
按 Control+Shift+G 或从主菜单中选择 ,然后在 导航到 弹出窗口中选择 切换头文件/源文件。
Ctrl - 单击符号名称。
转到主模板/特化
如果一个类或函数模板有多个特化,ReSharper 允许您在主模板/特化之间切换。
当您的光标位于主模板或其中一个特化上时,有两种方法可以在特化之间导航:
无论哪种方式,都会出现一个包含所有特化的弹出窗口,您可以在其中选择所需的特化:

查找用法
此命令允许在 解决方案和引用的程序集 中查找一个或多个符号的所有用法。 您可以从符号的声明或任何其他用法开始搜索。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。
如果有多个用法,ReSharper 会帮助您在 查找结果 窗口 中 分析结果。
您可以更改默认行为,以便即使是单个找到的用法也会显示在 查找结果 窗口中。 为此,请清除 ReSharper 选项 的 页面上的 转到用法:如果只有一个结果.... 复选框 Alt+R, O 。
要查找当前符号的用法,请按 Alt+F7 或从主菜单中选择 。
查找相关实体的用法
此命令允许您定位与所选符号以某种方式相关的实体的用法(例如文本出现、动态引用等)在指定范围内。 您可以从 解决方案资源管理器、 文件结构窗口 和其他工具窗口调用此命令。
要查找当前符号及相关实体的用法,请按 Shift+Alt+F7 或从主菜单中选择 。
在文件中高亮显示用法
编辑器 会自动高亮显示光标处符号的用法,这在短文件和小范围的局部变量中非常方便。 然而,这种高亮在较大的上下文中并不总是有效,因为选择仅在光标停留在符号上时存在。
还有一种与光标无关的高亮显示,直到您按下 Esc 为止,并为读写访问用法应用不同的 可配置 颜色。 您可以为单个项目或多个不同项目同时切换此高亮显示,然后使用快捷键在高亮显示之间跳转。
要查找当前符号及相关实体的用法,请按 Control+Shift+F7 或从主菜单中选择 。
转到包含声明
当您的光标位于类型或函数的主体中时,您可以通过一个快捷键跳转到该类型或函数的声明。
要转到包含声明,请按 Control+[ 或从主菜单中选择 。
转到下一个/上一个成员
使用 上/下一个成员 命令,您可以快速在代码文件中的相邻成员和嵌套类型之间,或在标记文件中的相邻标签之间导航。
要调用这些命令,请按 Alt+Down/Alt+Up 或从主菜单中选择 。
转到相关文件
要转到相关文件,请按 Control+Alt+Shift+G 或从主菜单中选择 。
在解决方案资源管理器中定位
此便捷的导航功能允许您展开解决方案资源管理器中的树,自动滚动并高亮显示与当前文档对应的项目。 当您有一个庞大的解决方案,或者屏幕空间有限,迫使您将解决方案资源管理器窗口缩小到极限时,这尤其有用。
要转到相关文件,请按 Alt+Shift+L 或从主菜单中选择 。
导航到最近的位置
ReSharper 会跟踪您的操作和导航历史,并提供一些命令,让您导航到您编辑或仅查看过代码的位置。
导航文件结构
使用 ReSharper,您可以使用 文件结构窗口 导航当前文档的结构,这大大简化了在大型文件中的导航。 该窗口与 编辑器 同步:当您切换到另一个 编辑器 选项卡时,窗口会显示相应文件的结构。
要打开 文件结构窗口,请按 Control+F11 或从主菜单中选择 。

导航到操作
ReSharper 帮助您快速查找并应用其任何操作,而无需在菜单中逐一查找。 所谓 操作 ,是指当前光标位置可用的可执行命令或任何全局命令,例如打开工具窗口的命令。
您还可以搜索并导航到选项页面。
要查找并执行 一个 ReSharper 操作,请按 Control+Shift+A 或从主菜单中选择 。
断点导航
使用 ReSharper,您可以快速跳转到解决方案中的任何断点/跟踪点,并在专用工具窗口中查看所有断点,该窗口具有分组、搜索、预览和符号名称功能。
要跳转到任何断点,请按 Control+Alt+F9 或从主菜单中选择 。
ReSharper 还带来了其自己的 R# 断点 窗口,您可以将其用作 Visual Studio 原生窗口的替代方案——您可以开始输入以搜索断点,或使用上下文菜单启用/禁用或移除断点。 您可以在下面的截图中查看两者的不同之处。

要显示 R# 断点 窗口,请按照 上文 所述打开断点弹出窗口,然后单击 在“断点”窗口中显示
,按
Shift+Enter
或
+
数字键盘上的键。
书签
如果您希望稍后返回代码中的某个位置,您可以在解决方案或 库代码 中用书签标记任何代码行。
您可以使用两种类型的书签:
带助记符的书签——最适合标记您经常引用的代码行,例如当前解决方案中的前 10 个位置。 您最多可以同时拥有 10 个编号书签。 它们由左侧 编辑器 边距上的以下图标指示:
.png)
为此类书签使用专用快捷键: Ctrl+Shift+[digit] 切换带有此数字的书签; Ctrl+[digit] 导航到带有此数字的书签。
匿名书签——允许数量不限,因此您可以标记任何您认为值得在未来某个时间返回的代码行。 它们由左侧 编辑器 边距上的以下图标指示:
.png)
您可以切换此类书签并从书签弹出窗口导航它们。
有关更多信息,请参阅 书签
待办事项资源管理器
ReSharper 提供了一种简单的方法来跟踪任务和代码中的 技术债务——匹配 特定模式 的代码项(注释、字符串字面量或标识符)可以在编辑器中以及整个解决方案中通过 待办事项资源管理器 窗口轻松定位。
有关更多信息,请参阅 待办事项列表