Sublime Text 3 の競プロer 用の設定のあれこれ

Sublime Text 3 を使っている競プロ er そんないなさそう

Sublime Text 3にはPackage Controlというものがあり,これを用いることで拡張ができるようになります.

導入方法は以下の記事が詳しいです.(簡単です)

photo-tea.com

上に,packageのインストール方法まで載っていますので以下は,競プロをやる上で入れておいたら絶対得というPacakgeを紹介します.

EasyClangComplete

packagecontrol.io

Command + Shift + PInstall PackageEasyClangComplete

Sublime Text 3を再起動したらもう大体OKです(いじりたい人はSettingからいじるといいと思います)

なにがうれしいの?

Sublime Text 3はデフォルトだとほぼ補完が効かないと思います.

これを入れると例えば,std::vectorpush_backの補完がきくようになったりして,かなり便利です.

f:id:jupiro:20210620144020p:plain

Sublime​Linter-gcc

packagecontrol.io

Command + Shift + PInstall PackageSublime​Linter-gcc

Sublime Text 3を再起動したらもう大体OKです(いじりたい人はSettingからいじるといいと思います)

上で述べた、EasyClangComplete に依存してるので、そちらも入れないと多分動かないです。

なにがうれしいの?

コンパイルして,あーコンパイルエラーでどこがCEなのだ??ってなることは多いと思いますが,これがほとんどなくなります.

具体的には,コード書いている時にCEとなるようなコードがあれば,コンパイルしなくてもリアルタイムで場所とかを教えてくれます. f:id:jupiro:20210620144058p:plain

追記 EasyClangComplete を clang ではなく、gcc の設定にする

bits/stdc++.h を使いたい人向け

PreferencesPackage SettingsEasyClangCompleteSettings

をすると、ファイルが開かれると思います。

ここで、

"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 の再起動を忘れずに