在VC++中是否有在标题和源文件之间移动的快捷方式?

Jef*_*ffV 101 keyboard-shortcuts visual-c++

这是我在Eclipse(Ctrl+ Tab)中习惯使用的一个功能.Visual C++中是否有等价物?

Kyl*_*ons 128

在Visual Studio 2013及更高版本中,有一个默认的键盘快捷键:Ctrl+ K,Ctrl+ O (您需要按住Ctrl键并键入ko然后释放Ctrl键)

在早期版本中,请参阅:

Visual Studio宏可在CPP和H文件之间切换

要么

在Visual Assist中打开相应的文件

  • 对于懒惰的VisualAssist用户:`Alt + O` (10认同)
  • 它内置于VS 2013. http://blogs.msdn.com/b/vcblog/archive/2013/08/23/c-ide-improvements-in-visual-studio-2013.aspx (5认同)
  • 好的,我的坏.没有意识到Ctrl + K和Ctrl + O实际上是一个SINGLE快捷命令; 不是两个相同的选择.对于VS新手的人来说,可能值得一提的是:) (3认同)
  • Visual Assist是一个很棒的工具 - 我推荐给所有使用MSVC的开发人员 (2认同)
  • 有没有人有VS2013的解决方案? (2认同)

Ant*_*n K 30

在Visual Studio 2013中,默认的键盘快捷键是Ctrl+ K,Ctrl+O

  • 命令名称:`EditorContextMenus.CodeWindow.ToggleHeaderCodeFile` (9认同)

Leo*_*son 24

您可以将此宏添加到VS配置(通过工具 - >宏 - >宏浏览器),然后为其分配一个热键(通过工具 - >选项 - >环境 - >键盘).

我只是写了它(已经意味着多年来尝试这个!)但它似乎在VS2008和VS2010中都有效.

由于它是一个宏,您可以编辑它以包含您想要的任何规则(例如,查看其他文件夹,或者如果您有多个cpp文件共享的单个标头或类似的特殊命名规则).

这是宏(我敢肯定它可以更好地编写;我不熟悉VS对象,只有实现的宏在编写事物的过程中使用.Net):):

Sub FileSwitch()
    Try
        Dim CurrentPath As String = DTE.ActiveDocument.FullName
        Dim OtherPath As String

        If (IO.Path.HasExtension(CurrentPath)) Then
            Dim CurrentExtension As String = IO.Path.GetExtension(CurrentPath)

            Select Case CurrentExtension
                Case ".h", ".hpp", ".hxx"
                    OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cpp")
                    If (Not IO.File.Exists(OtherPath)) Then
                        OtherPath = IO.Path.ChangeExtension(CurrentPath, ".c")
                        If (Not IO.File.Exists(OtherPath)) Then
                            OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cxx")
                        End If
                    End If
                Case ".cpp", ".c", ".cxx"
                    OtherPath = IO.Path.ChangeExtension(CurrentPath, ".h")
                    If (Not IO.File.Exists(OtherPath)) Then
                        OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hpp")
                        If (Not IO.File.Exists(OtherPath)) Then
                            OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hxx")
                        End If
                    End If
                Case Else
            End Select
            If (OtherPath <> Nothing) Then
                DTE.ItemOperations.OpenFile(OtherPath)
            End If
        End If

    Catch ex As System.Exception
        MsgBox(ex.Message)
    End Try
End Sub
Run Code Online (Sandbox Code Playgroud)

这是一个(非常宽:))屏幕截图,显示宏编辑器和热键/选项对话框应该是什么样的,以帮助那些不熟悉它们的人:

在此输入图像描述


小智 8

尝试Visual Assist,它具有这个功能(以及其他功能):

http://www.wholetomato.com/

代码浏览功能 - 其中header/cpp swap是其中一部分 - 非常好.

(我也真的评价了它的智能和重构功能,但并不是我所说过的每个人都同意我的观点.)

编辑:只记得,Nifty解决方案插件也做到这一点 - 再加上另一个像Visual Assist这样的东西,尽管没别的 - 而且它们是免费的:

http://code.google.com/p/niftyplugins/

(这个人的perforce插件也很棒.比默认的VSSCC垃圾要好得多.)


Tym*_*mek 8

试试PhatStudio.它是免费的,并配有一个简单的安装程序.

  • ALT+ S=在标头/源文件之间切换

  • ALT+ O=打开文件(通过键入支持即时搜索,如Windows Vista/7中的开始菜单).


meJ*_*rew 7

对于 Visual Studio 2013,正如其他人提到的,它的命令名为:

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
Run Code Online (Sandbox Code Playgroud)

它有默认的按键组合:Ctrl+ KCtrl+ O,但如果您在中引入您喜欢的新按键组合,则可以更改它

按快捷键:

在下面

工具 -> 选项 -> 环境 -> 键盘

因此,您可以选择自定义按键组合,因为我最喜欢的 .h 到 .cpp 切换是Ctrl+ Tab


Kat*_*ory 5

在Visual Studio 2008和2010中,您可以右键单击.cpp文件并选择"转到标题文件...",它将使您朝一个方向前进.对于另一个方向,如果右键单击标题中正在声明的内容,并选择"转到定义",则会转到另一个方向.如果选择构造函数,则可能必须通过歧义解析对话框,因为函数名称与类名匹配,但如果您选择其他任何内容,则可以直接转到所需的位置.我知道这是一个双击方法,而不是一次击键,但它确实做你想要的.


小智 5

如果将鼠标放在标头中的函数声明上并按F12,则cpp文件将在cpp文件的定义处打开...我广泛使用此功能!


aar*_*rkk 5

我在这里没有看到这个答案,但至少在Visual Studio 2012(Express包括!)中,您可以只分配自己的键盘命令转到头文件(注意:只有一种方式 - 你不能去不幸的是回到源文件...)

  1. 转到工具/选项/环境/键盘.
  2. 找到以下命令:EditorContextMenus.CodeWindow.GoToHeaderFile
  3. 分配你想要的任何组合键(Alt-S工作)
  4. 利润

不确定哪个版本的VS可以使用,但它不需要任何加载项,并且似乎至少在一个方向上做了这个技巧.