VC ++でヘッダーとソースファイルの間を移動するショートカットはありますか?


112

これは、Eclipse(Ctrl+ Tab)で慣れ親しんだ機能です。Visual C ++に同等のものはありますか?



@LưuVĩnhPhúcEclipseのヘッダーまたはソースコードで作業しているときにAlt-Tabを押すと、プロジェクトのインデックスが適切に作成されていると仮定して、Eclipseによってソースとヘッダーが切り替わります。
MrMas

回答:


138

Visual Studioの2013年以降では、このためのデフォルトのキーボードショートカットがあります:Ctrl+ KCtrl+ O (あなたが押したままにする必要がありますCtrlキーと入力KOを放しCtrlキーを

以前のバージョンでは、以下を参照してください。

CPPファイルとHファイルを切り替えるVisual Studio Macro

または

Visual Assistで対応するファイルを開く


2
Visual Assistは優れたツールです。MSVCを使用するすべての開発者にお勧めします
Stephen Nutt

10
怠惰なVisualAssistユーザーの場合:Alt + O
nimcap

2
誰かがVS2013のソリューションを持っていますか?
Shaun Rowan


3
わかりました。Ctrl + KとCtrl + Oが実際には1つのショートカットコマンドであることを認識していませんでした。同じの2つのオプションではありません。VSに不慣れな人のための回答で言及する価値があるかもしれません:)
Petr Peller

31

Visual Studio 2013では、デフォルトのキーボードショートカットはCtrl+ KCtrl+です。O


me.2013 Community Editionでは機能しません。一般設定。カスタマイズ/キーボードウィンドウのコンマ名とは何ですか?
ジュリー

12
コマンド名:EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
codekaizen 2015

24

このマクロをVS構成に追加し([ツール]-> [マクロ]-> [マクロエクスプローラー]を使用)、ホットキーを割り当てます([ツール]-> [オプション]-> [環境]-> [キーボード]を使用)。

私はそれを書いただけです(これを長い間試してみる意味です!)が、これまでのところ、VS2008とVS2010の両方で機能しているようです。

マクロなので、編集して任意のルールを含めることができます(たとえば、他のフォルダーを検索したり、複数のcppファイルなどで1つのヘッダーを共有している場合は特別な命名ルールを使用したりできます)。

ここにマクロがあります(私はそれがよりよく書かれることができると確信しています;私は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

マクロエディターとホットキー/オプションのダイアログがどのように表示されるかを示す(非常に広い:))スクリーンショットを次に示します。

ここに画像の説明を入力してください


1
もう1つのお気に入りのVSマクロトリック:常に作業しているexeにデバッガーをアタッチするマクロを記録し、それをツールバーに貼り付けます。デバッグする必要があるときはいつでも、その実行中のプロセスへのワンクリック接続。
レオデビッドソン、

うわー、それは素晴らしいです!プラグインは.hと.cppの間でしか切り替えることができないため、Nifty Solutionsプラグインよりもうまく機能します。.hppから.cppに切り替えることはできません
j00hi

しかし、マクロをどこに置くのでしょうか?なんらかの理由で、VS2010にはすでに「Module1」マクロが含まれています。そのため、ダブルクリックして編集し、「Public Module Module1」内にマクロコードを挿入しました。そこから、ツール=>オプション=>環境=>キーボードで、テキストエディタにショートカットを設定します。
Qwertie、2012年

素晴らしい、テスト済み、動作しています。2010年11月に投稿された回答-2012年7月でも機能します。
rptr

1
Alex:マクロはVisual Studioにグローバルです。それらは「マクロプロジェクト」(マクロのグループを保存およびロードできる)に保存されますが、私が知る限り、これらは通常のタイプのソリューション/プロジェクトとは無関係です。デフォルトのマクロプロジェクトで定義されたいくつかのマクロがあり、ソリューションまたはプロジェクトを開く前(および後)に使用できます。
レオデビッドソン

9

PhatStudioをお試しください。これは無料で、簡単なインストーラーが付属しています。

  • ALT+ S=ヘッダー/ソースファイルを切り替える

  • ALT+ O=ファイルを開く(Windows Vista / 7のスタートメニューのように、タイピングによるインスタント検索をサポートします)。


おかげで、これは束の最も簡単なソリューションであり、無料でもあります。
ラッセルデイビス、

8

(特に)この機能を備えたビジュアルアシストを試してください。

http://www.wholetomato.com/

ヘッダー/ cppのスワップがその一部であるコードブラウジング機能は本当に優れています。

(私は本当にそのインテリセンスとリファクタリング機能を評価しました、しかし私が話したすべての人が私に同意したわけではありません。)

編集:覚えておいてください、ニフティソリューションプラグインもこれを行います-それに加えて、他には何もありませんが、もう1つの便利なビジュアルアシストのようなものがあります-それらは無料です:

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

(その人のPERFORCEプラグインも素晴らしいです。デフォルトのVSSCCのゴミよりはるかに良いです。)


Visual Assistを見てみましょう。私はそれが.NET言語のみであると想定していました。
2010年

5

Visual Studio 2008および2010では、.cppファイルを右クリックして[ヘッダーファイルに移動...]を選択すると、一方向に移動できます。他の方向については、ヘッダーで宣言しているものを右クリックして[定義に移動]を選択すると、他の方向に移動します。関数名がクラス名と一致するため、コンストラクターを選択した場合は、あいまいさの解決ダイアログを通過する必要があるかもしれませんが、それ以外のものを選択した場合は、必要なところに直接進みます。これは1回のキーストロークではなく、2回クリックのアプローチであることは知っていますが、それはあなたが望むことを行います。


5

ヘッダーの関数宣言の上にマウスを置いてF12キーを押すと、cppファイルの定義でcppファイルが開かれます...この機能を幅広く使用しています!


5

ここにはこの答えはありませんが、少なくともVisual Studio 2012(Expressが含まれています!)では、独自のキーボードコマンドを割り当ててヘッダーファイルに移動することができます(注:1つの方向にしか移動できません-移動できません)残念ながらソースファイルに戻ります...)

  1. ツール/オプション/環境/キーボードに移動します。
  2. 次のコマンドを見つけます:EditorContextMenus.CodeWindow.GoToHeaderFile
  3. 任意のキーの組み合わせを割り当てます(Alt-Sが機能します)
  4. 利益

これが機能するVSのバージョンはわかりませんが、アドインを必要とせず、少なくとも1つの方向でトリックを実行しているようです。


Visual Studio 2013には、EditorContextMenus.CodeWindow.ToggleHeaderCodeFileと呼ばれるコマンドがあり、これを実行して、.hファイルと.cppファイルを切り替えます。
Jaanus Varus

4

Switchを使用してみてください。これは、ソースとヘッダー、コードとデザイナー、XAMLと分離コードなどを切り替えることができるアドインです。

http://www.dwmkerr.com/switch/またはVisual Studioの製品と拡張機能から直接


1
これは私が必要なものです!!!!!!!!!!!! ありがとう!!!!!!!!!!! インストーラーが機能しない場合は、codeproject.com / Articles / 324611 /…のインストーラーを使用してください
Michal Sznajder 2013年

3

私はこれを行うためのVisual Assistのファンです。安くはありませんが、ヘッダーとソースを切り替えるよりもはるかに多くの機能を提供します。また、プロジェクトやクラスブラウジング機能で開いているファイルをよく使用しています。もちろん、マクロは無料です...



2

Visual Studio 2013の場合、他の人が述べたように、次のコマンドです。

EditorContextMenus.CodeWindow.ToggleHeaderCodeFile

Ctrl+ KCtrl+のデフォルトの組み合わせがありますOが、新しいキーの組み合わせを

ショートカットキーを押します。

ツール- >オプション- >環境- >キーボード

したがって、.hから.cppへのスイッチのお気に入りはCtrl+ なので、カスタムキーの組み合わせを選択できますTab


1

ビジュアルアシストは、Visual Studio Expressエディションもサポートしていません。したがって、そのIDEを使用している場合、マクロに行き詰まっています>



0

MSの(無限の)知識では、MSはMSVS 2012でマクロを削除することを決定したため、上記のマクロは機能しません。

MSVS 2012の場合、これを見つけました。

http://www.dwmkerr.com/switch/

高度な設定が可能で、GitHubで改善を支援できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.