読者です 読者をやめる 読者になる 読者になる

sublimetextでcを書く(情報科学基礎実験を乗り越えるために)

この記事はIS17er Advent Calendar 2016 - Adventarの8日目の記事として書かれました。

情報科学基礎実験もとうとうアセンブリに突入しニーズが低いとは思いますが、きっと誰かの役に立つと信じてsublimetextでc言語の開発環境?を整えた話を書きます。(僕自身はそろそろvimに乗り換えるつもりなのですが...笑)

Sublimetextとは?

www.sublimetext.com

"恋に落ちるエディタ"というキャッチフレーズとともに近年人気のエディタらしい (AtomとかBracketsとか競合に押されている感じもあるが...)

授業ではEmacsが推奨されているがsublimetextの方が気楽に使えると思う。

sublimetextの良さや導入方法については時間がないので下記サイトに丸投げ。

techacademy.jp

オススメのパッケージ

僕がsublimetextでCやアセンブリを書く際に使っていパッケージを紹介します。

  • ConvertToUTF8
  • BracketHighliter
  • TrailingSpaces
  • C Improved
  • Clang-Complete
  • x​86 and x​86_64 Assembly

ConvertToUTF8

様々な文字コードをUTF8に変換して使うためのパッケージ ありがたみを感じることはないけど多分ないと文字化けなどで困る

BracketHighliter

カーソルの外側の括弧がわかりやすいようにハイライトをつけるパッケージ f:id:gonta42:20161208235342p:plain
↑行番号の隣と{}の下にハイライトが付いている  

TrailingSpace

行末の空白をハイライトしてくれるパッケージ   f:id:gonta42:20161208235504p:plain  

C Improved

カラースキームが少し良くなる   f:id:gonta42:20161208235551p:plain 
C Improved - Packages - Package Control

Clang-Complete

+sでセーブすると文法ミスを指摘してくれる他、 Cの各種関数の自動補完とかもしてくれる。  

f:id:gonta42:20161208235752p:plain   f:id:gonta42:20161208235756p:plain  

コンパイルせずにエラーがわかるし、エラー箇所を直接ハイライトしてくれるから結構助けられてる。 

x​86 and x​86_64 Assembly

アセンブリをハイライトしてくれる
f:id:gonta42:20161209132737p:plain
x86 and x86_64 Assembly - Packages - Package Control

C言語用ビルドシステム

sublimetextでは+bソースコードをsublimetextのコンソール上でコンパイル及び実行してくれる... はずが、デフォルトではC言語用の設定がなかったので自分で書いた。
f:id:gonta42:20161209003108p:plain 上のようにTools>Build System> New Build Systemで新しい設定ファイルを作成。
今回はC言語用なので C.sublime-buildという名前で保存

{
    "selector":"sourse.c",
    "cmd":["gcc","-Wall","$file","-o","${file/c/out/}"],

    "variants":[
        {
        "name":"実行",
        "cmd":"${file/c/out/}"
        },
        {
        "name":"debag",
        "cmd":["gcc","-Wall","-g","$file","-o","${file/c/out/}"]
        },
        {
        "name":"アセンブリ出力",
        "cmd":["gcc","-Wall","-S","$file","-o","${file/c/s/}"]
        },
        {
        "name":"コンパイルのみ",
        "cmd":["gcc","-Wall","-c","$file","-o","${file/c/o/}"]
        }
    ]
}

以上のように(JSON形式で)設定を書くと+bソースコードコンパイルしてくれる
(例えばhello.cを書いている時は$ gcc -Wall hello.c -o hello.outを実行してくれる)
実行したりアセンブリを出力したかったりする時は+shift+bから他のコマンドを選択して実行できるようにした。
f:id:gonta42:20161209134717p:plain

それぞれの設定の意味は察してください笑
(詳しい説明は下記のサイトとかを見るといいかもしれない)
Build Systems — Sublime Text Unofficial Documentation

なんだかグダグダになってしまったのでそのうち真面目に書き直すつもりですが、解決方法、アドバイス等あれば教えていただけるとありがたいです。
最後まで読んでくれた方々ありがとうございました!!