AtCoderをc++でやるときのWSL2環境設定メモ

2023/09/25

目次

参照

メモ

基本上記の通りにやったらいい感じになりました。一部自分なりの設定に変えたりした部分があったのでメモ。

コンパイルの自動化をタスク化する場合の設定例

.vscode/tasks.json
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "c++ build for AtCoder",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g",
        "-O0",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}.out"
      ],
      "options": {
        "cwd": "${fileDirname}"
      },
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

デバッグ用の launch.json の設定例

.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(gdb) Launch",
      "type": "cppdbg",
      "preLaunchTask": "c++ build for AtCoder",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}.out",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        },
        {
          "description": "Set Disassembly Flavor to Intel",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

AtCoder のテスト・提出のキーボードショートカット設定

  • command-runner というのを使うと、setting.json に下記を追記することで、コマンドが利用できるようになります。これをショートカットの設定に追加することで、ショートカットでコマンドが実行されます。
  • oj test は、コンパイルをしてから、テストするようにしました。
setting.json
"command-runner.commands": {
  "oj test": "cd ${fileDirname} && g++ main.cpp -o main.out && oj test -c ${fileDirname}/main.out -d ${fileDirname}/tests",
  "acc submit": "cd ${fileDirname} && acc submit ${file}"
}

acc のコマンドのメモ

acc はこれ のことです。

  • 新たに abc のディレクトリ作る
    • acc new abc123
  • 既にディレクトリあるときに問題を追加する
    • acc add

acc の設定ファイルの場所

> acc config-dir
/home/dev/.config/atcoder-cli-nodejs

> tree $(acc config-dir)
/home/dev/.config/atcoder-cli-nodejs
├── config.json
├── session.json
└── template1
    ├── main.cpp
    └── template.json
Rust🦀, Network⚡, PostgreSQL🐘, Unity🎮

Tags

rust  (9)
rocket  (7)
svelte  (5)
c++  (4)
ethereum  (3)
solidity  (3)
vscode  (3)
sqlx  (3)
glfw  (2)
opengl  (2)
nestjs  (2)
graphql  (2)
render  (2)
wsl2  (2)
truffle  (1)
goerli  (1)
geth  (1)
hardhat  (1)
nft  (1)
gui  (1)
tetris  (1)
next.js  (1)
jwt  (1)
nextauth  (1)
node.js  (1)
prisma  (1)
passport  (1)
urql  (1)
codegen  (1)
mdsvex  (1)
markdown  (1)
tmux  (1)
nvim  (1)
axum  (1)
atcoder  (1)
vim  (1)
pacman  (1)
tracing  (1)
Cursor  (1)
VSCode  (1)
PHP  (1)
Laravel  (1)