Sublime Text 3 の競プロer 用の設定のあれこれ
Sublime Text 3 を使っている競プロ er そんないなさそう
Sublime Text 3にはPackage Controlというものがあり,これを用いることで拡張ができるようになります.
導入方法は以下の記事が詳しいです.(簡単です)
上に,packageのインストール方法まで載っていますので以下は,競プロをやる上で入れておいたら絶対得というPacakgeを紹介します.
EasyClangComplete
Command + Shift + P
→ Install Package
→ EasyClangComplete
でSublime Text 3を再起動したらもう大体OKです(いじりたい人はSettingからいじるといいと思います)
なにがうれしいの?
Sublime Text 3はデフォルトだとほぼ補完が効かないと思います.
これを入れると例えば,std::vector
のpush_back
の補完がきくようになったりして,かなり便利です.
SublimeLinter-gcc
Command + Shift + P
→ Install Package
→ SublimeLinter-gcc
でSublime Text 3を再起動したらもう大体OKです(いじりたい人はSettingからいじるといいと思います)
上で述べた、EasyClangComplete に依存してるので、そちらも入れないと多分動かないです。
なにがうれしいの?
コンパイルして,あーコンパイルエラーでどこがCEなのだ??ってなることは多いと思いますが,これがほとんどなくなります.
具体的には,コード書いている時にCEとなるようなコードがあれば,コンパイルしなくてもリアルタイムで場所とかを教えてくれます.
追記 EasyClangComplete を clang ではなく、gcc の設定にする
bits/stdc++.h
を使いたい人向け
Preferences
→ Package Settings
→ EasyClangComplete
→ Settings
をすると、ファイルが開かれると思います。
ここで、
"common_flags" : [
となってる箇所を探してください。
僕の環境ではもともと、
"common_flags" : [ // some example includes "-I/usr/include", "-I$project_base_path/src", // this is needed to include the correct headers for clang "-I/usr/lib/clang/$clang_version/include", // For simple projects, you can add a folder where your current file is "-I$file_path", ],
でした。-I
というコンパイルオプションは簡単にいうと、#include
した際にその場所のフォルダを探してくれます。よって、この設定を clang のものから gcc のものに変えていきます。まず、どこのフォルダに gcc の include ファイルがあるか探しましょう。いろいろやり方はあると思いますが、
find / -name iostream 2>/dev/null
とかで、それぽいの探すといいと思います。 ( clang と gcc の両方出てくるので、gcc ぽいほうを)
そうすると僕の環境では、
/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/iostream
が見つかったので、
-I/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/
を先程のファイルに加えます。( 注意として、 /opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/iostream
ではないです。)
次に、bits/stdc++.h
のファイルを探します。同様に、
find / -name stdc++.h 2>/dev/null
とかで、探すと出てきます。僕の環境では、
/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/aarch64-apple-darwin20/bits/stdc++.h
が出てきたので、
-I/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/aarch64-apple-darwin20/
を加えます。あとは、clang のところを全部コメントアウトして、最終的に
"common_flags" : [ // some example includes //"-I/usr/include", //"-I$project_base_path/src", // this is needed to include the correct headers for clang //"-I/usr/lib/clang/$clang_version/include", // For simple projects, you can add a folder where your current file is //"-I$file_path", "-I/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/", "-I/opt/homebrew/Cellar/gcc/11.1.0_1/include/c++/11.1.0/aarch64-apple-darwin20/" ],
で、できました!設定を確認するときは、Sublime Text 3 の再起動を忘れずに