SublimeText3のC++環境メモ

参考ブログ

Sublime Text 3の設定(C++編)

環境

Windows8.1 Pro 64bit

インストール

SublimeText3のインストール

パッケージ管理ソフトを入れる

Package Control

View > Show Console

でコンソール開いて

import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

を打ち込む Preferencesの中にPackage Controlがあるはず
install packageで追加、removeで削除

追加パッケージ

ConvertToUTF8

UTF8に対応させるパッケージ
なんか勝手に入ってたぽいので必要ないかも?
多分デフォのままで大丈夫、問題あれば追記

FireManager

サイドバーは

View > Side Bar

から

とりあえずこんなもんで良さそう 透過とか便利そうなものはあったけどそのときに考える

ビルド環境

コンパイラ設定

mingw使ってgccパスを通すのが下手くそだったので大人しく記事に従う MSYS2 をインストール

ターミナルが起動したら

pacman -S [イントールするもの]

mingw-w64-x86_64-clang mingw-w64-x86_64-clang-tools-extra mingw-w64-x86_64-gdb

をインストール

C:\msys64\mingw64\bin C:\msys64\user\bin

のパスを通す

C:\msys64\etc\pacman.conf

# [mingw32]
# Include = /etc/pacman.d/mirrorlist.mingw32

をこのようにコメントアウト

Tools < Build System < New Build System

を開いてビルドオプションを書く

{
    "selector": "source.c++",
    "file_regex": "^(.*?):([0-9]*):?([0-9]*):? (.*)",
    "shell": true,
    "cmd": ["clang++", "-std=c++14", "-g", "-Og", "-pipe", "-Wall", "$file_name", "-o", "$file_base_name.exe"],
    "variants":
    [
        {
            "name": "ビルドして実行",
            "shell": true,
            "cmd": "clang++ -std=c++14 -g -Og -pipe -Wall $file_name -o $file_base_name.exe & $file_base_name"
        },
        {
            "name": "ターミナルで開く",
            "shell": true,
            "windows":
            {
                "cmd": ["start", "ConEmu64", "/cmd", "clang++ -std=c++14 -g -Og -pipe -Wall $file_name -o $file_base_name.exe & $file_base_name"]
            }
        }
    ]
}

ビルドできた なぜgccだとうまく行かなかったんだろうか

オートコンプリートの設定

EasyClangComplete

Preferences >Package Settings > Easy​Clang​Complete > Settings
を開くと2つsettingが開くので右側の方に

{
    "common_flags":[
        "-IC:/msys64/mingw64/include",
        "-IC:/msys64/mingw64/x86_64-w64-mingw32/include",
        "-IC:/msys64/mingw64/lib/clang/$clang_version/include",
        "-I$project_base_path/src"
    ],
    "cpp_flags": ["-std=c++14"]
}

を貼り付け
なんとなくC++11にしたら雑魚だったので大人しくC++14のままでいいと思う

デバッガ

SublimeGDB(SublimeGDB - Packages - Package Control)

Preferences >Package Settings > SublimeGDB > Settings - User

を開いて

{
        "commandline": "gdb --interpreter=mi --args ./${file_base_name}",
        "workingdir": "${folder:${file}}",
}

ペースト

機能 キーバインド
ブレークポイントのオン/オフ F9
起動 F5
ステップオーバー F10
ステップイン F11
ステップアウト Shift+F11