15
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Sublime Text 2 + Visual Studio 2012でC++開発するための設定

Visual Studio 2012

外部ツールに追加

編集中のファイルをSublime Text 2で開けるように外部ツールに登録する。
[ツール] -> [外部ツール] -> [追加]

名称 設定値
タイトル Sublime
コマンド C:\Program Files\Sublime Text 2\sublime_text.exe
引数 \$(ItemPath):\$(CurLine):\$(CurCol)
初期ディレクトリ \$(ItemDir)

外部ツール呼び出しをキーバインド設定

[ツール] -> [オプション] -> [環境] -> [キーボード]
にて「ツール.外部コマンド~」に登録する。
個人的にはF2とかに登録してる。

Sublime Text 2

必要なパッケージ

SublimeClang をPackage Managerでインストール。

プロジェクトに関係しないインクルードパス設定。

[Preferences] -> [Package Settings] -> [Sublime Clang] -> [Settings - User]

{
    "options": [
        "-Wall",
        "-isystem", "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include",
        "-isystem", "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\atlmfc\\include",
        "-isystem", "C:\\Program Files (x86)\\Windows Kits\\8.0\\Include\\um",
        "-isystem", "C:\\Program Files (x86)\\Windows Kits\\8.0\\Include\\shared",
        "-isystem", "C:\\Program Files (x86)\\Windows Kits\\8.0\\Include\\winrt"
    ]
}

プロジェクト毎のインクルードパス設定

こちらの投稿を参考に設定する。
以下引用。

参照するヘッダファイルの追加

開発で作成した独自のヘッダファイルは、同じフォルダにない限りSublimeClangからは参照されず、includeを書いてもエラーとなります。
解決するには、Sublime Textのプロジェクトの設定ファイルにヘッダファイルがあるディレクトリのパスを追記します。これでinclude文がエラーにならず、補完も効くようになります。

  1. [Project] - [Save Project As…]メニューでプロジェクトを作成する。ファイル名がプロジェクト名になるので、任意の名前を付ける。
  2. [Project] - [Edit Project]メニューよりプロジェクトの設定ファイルを開く。
  3. 設定ファイルにヘッダファイルへのパスを追加する。
{
   "settings": {
       "sublimeclang_options": [
           "-I/path/to/foo/include",
           "-I/path/to/bar/include"
       ]
   }
}

キーバインド設定

Visual StudioっぽくF12で関数ジャンプできるようにする。
[Preferences] -> [Key Bindings - User]

[
    { "keys": ["f12"], "command": "clang_goto_def", "context": [{"key": "clang_supported_language"}] },
    { "keys": ["ctrl+f12"], "command": "clang_goto_implementation", "context": [{"key": "clang_supported_language"}] },
    { "keys": ["shift+f12"], "command": "clang_go_back", "context": [{"key": "clang_supported_language"}] }
]
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
15
Help us understand the problem. What are the problem?