2014年10月5日日曜日

Sublime Text 2でC/C++の開発環境を強化する(Ubuntu 14.04 LTS)

こんにちは。
今回はSublime Text 2の拡張機能である「SublimeClang」を使ってC/C++のプログラミングを楽にしようという記事です。
研究室ではもちろん、つい最近ではサーキットの1年生までがemacs、emacs言い出しているもんで悲しいです。Sublime Text 2のほうが先進的で使いやすいのに...
今回の記事を読んでちょっと使ってみようかなと思っていただければ幸いです。

前準備

今回、動作を確認した環境は
Ubuntu 14.04 LTS 日本語Remix
Sublime Text 2

Sublime Text 2に関してはお決まりのPackage Controlを入れていること
以下Sublime Text 2をST2と記す。

手順1

ST2でパッケージコントロールを呼び出して「Package Control: Install Package」を選択し、「SublimeClang」と入力してパッケージを導入。



これで終わり!と言いたいところですが、一筋縄ではいかないようです。Linuxでは下の写真のようなアラートがでます。Macでは出ないのに...

 

この解決方法はすでに他のサイトで紹介されています。これに関してはとてもわかり易いサイトがありましたので、そちらの方を参考にしてください。
Sublime TextでC++の開発環境を作る
http://qiita.com/nagakenjs/items/e06911f4ff9e9871cd2b
このサイトの”エラー対応”のところを参考にして一行ずつ確実にコマンドを入力してください。

手順2

すべてのコマンドを入力し終えたら1回ST2を閉じて再び起動させます。
すると先ほどのエラーのアラートは出なくなりましたが、次には写真のようなエラーが下のウィンドウに出ます。


どうやら'c++config.h'が見つからないようなので、こいつの場所を教えてやる必要があるみたいです。したがってSublimeClangの設定ファイルをいじります。設定ファイルは下のようにメニューから引っ張ってくるか、ターミナルなりファイラーなりでこの場所にアクセスしてください。
~/.config/sublime-text-2/Packages/SublimeClang/SublimeClang.sublime-settings


このファイルの266行目にかけてのオプションに一文追加します。

    "options":
    [
        "-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/",
        "-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/4.2.1",
        "-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++\\mingw32",
        "-isystem", "C:\\MinGW\\include",
        "-isystem", "/usr/include",
        "-isystem", "/usr/include/c++/*",
        "-isystem", "/usr/include/x86_64-linux-gnu/c++/4.8/",
        "-Wall"
    ],

277行に追加したらSublimeClang.sublime-settingsを保存。これで先ほどのエラーは消えると思います。

実際に使ってみる

SublimeClangでの補完は変数名や関数を定義している場合、該当している変数、関数をサジェストしてくれます。


またClangの文法チェックについては、例えば定義していない変数(図中ではsum)があれば、そのファイルを保存したタイミングで下のように指摘してくれます。



補足

メイン文と関数を別々のファイルで書いてるときに、関数ってどこで定義したっけ?ってときがありますよね。そんなときは右クリックで「Go to Definition」と「Go to Implementation」を使います。「Go to Definition」でそれが宣言されている箇所にジャンプし、「Go to Implementation」で実装されている箇所にジャンプします。変数に関しても同様です。

この機能に関してはショートカットキーがあるのですが、ショートカットキーがUbuntuシステムのHUD (Head Up Display)に使われるAltキーと干渉してしまうので、下のサイトの用に変更するといいです。
ぬるグラマー向け開発環境構築
http://qiita.com/disktnk/items/7e499ddf08935e191bc7

また標準ではC++11の書式には対応しておらず、エラーがでます。これを解決するにはSublimeClang.sublime-settingsを書き換えます。146行目にある"additional_language_options":以下のコメントアウトに従います。149行目の[]にオプション"-std=c++11"を追加するだけです。


長くなりましたが以上です。あとはひたすらコードを書くだけですね。
次はST2でC/C++のコードの自動整形ができるようにする記事を書こうかなと思っています。
書きました→http://cirkitrwrc.blogspot.jp/2014/10/sublime-text-2ccubuntu-1404-lts_5.html
最後まで閲覧していただき、ありがとうございました。


0 件のコメント:

コメントを投稿