OSX에 VSCode를 사용하여 Atcoder 환경 구축
10241 단어 ShellScriptC++AtCoder경기 프로그래밍VSCode
바쁜 사람들을위한 요약
htps : // 기주 b. 코 m / kmyk / 온 네네 쥬 d 게와 ls 사용
폴더 구성
아래 최종 폴더 구성입니다. 참고로
pwd
/Users/xxx/Atcoder
tree -L 1
.
├── AlgorithmTemplate アルゴリズムのテンプレートをここに配置
├── Atcoder.code-workspace VSCodeの設定ファイル
├── Contest コンテストフォルダをこの中に作成する
├── README.md
├── TeplateFolder
├── cpp_dl_test.sh task.jsonsに登録するshell
├── cpp_onecase_only.sh task.jsonsに登録するshell
└── cpp_testonly.sh task.jsonsに登録するshell
소개
다양한 도구 설치
VSCode 설치
htps : // 여기.ゔぃすあ lsつぢお。 코m/
위 페이지에서 "Download for Mac"로 설치. 세세한 설정은 더 이상 기억하지 않지만 특별히 의식하지 않은 기억입니다.
GCC 설치
OSX에 디폴트로 들어 있는 C++ 컴파일러는 Clang계(/usr/bin/g++)입니다만, 이것이 의외로 사용하기 어렵기 때문에 GCC로 합니다.
설치는 아래의 기사를 참고로 했습니다.
htps : // 코 m / 엔 gTks / ms / 펑 2 7b4d264 7 052c6
거친 작업은 다음
- Homebrew로 GCC 설치
- 심볼릭 링크 교체
- #include 사용 가능
online-judge-tools 설치
Atcoder의 콘테스트 사이트로부터 샘플 문제를 취득해, 각각을 테스트한다고 하는 꿈 같은 툴이 이하 리포지토리로 공개되고 있었던 것에 고맙게 사용하게 하기로 했습니다.
설치 방법은 「How to install」에 기재가 있으므로 할애
kmyk/online-judge-tools:
htps : // 기주 b. 코 m / kmyk / 온 네네 쥬 d 게와 ls
무려 일본어 참조도 있습니다. 환경을 만드는 데 도움이되었습니다.
Introduction to online-judge-tools (Korean) — online-judge-tools documentation
htps : // 온네네주 d게와 ls. Red d. cs. 이오/엔/마s테 r/인 t로즈 c치온. 그럼. HTML
환경 구축
위의 환경을 구축한 시점에서 다음 작업은 명령 한 번으로 가능합니다.
VSCode 설치
htps : // 여기.ゔぃすあ lsつぢお。 코m/
위 페이지에서 "Download for Mac"로 설치. 세세한 설정은 더 이상 기억하지 않지만 특별히 의식하지 않은 기억입니다.
GCC 설치
OSX에 디폴트로 들어 있는 C++ 컴파일러는 Clang계(/usr/bin/g++)입니다만, 이것이 의외로 사용하기 어렵기 때문에 GCC로 합니다.
설치는 아래의 기사를 참고로 했습니다.
htps : // 코 m / 엔 gTks / ms / 펑 2 7b4d264 7 052c6
거친 작업은 다음
- Homebrew로 GCC 설치
- 심볼릭 링크 교체
- #include 사용 가능
online-judge-tools 설치
Atcoder의 콘테스트 사이트로부터 샘플 문제를 취득해, 각각을 테스트한다고 하는 꿈 같은 툴이 이하 리포지토리로 공개되고 있었던 것에 고맙게 사용하게 하기로 했습니다.
설치 방법은 「How to install」에 기재가 있으므로 할애
kmyk/online-judge-tools:
htps : // 기주 b. 코 m / kmyk / 온 네네 쥬 d 게와 ls
무려 일본어 참조도 있습니다. 환경을 만드는 데 도움이되었습니다.
Introduction to online-judge-tools (Korean) — online-judge-tools documentation
htps : // 온네네주 d게와 ls. Red d. cs. 이오/엔/마s테 r/인 t로즈 c치온. 그럼. HTML
환경 구축
위의 환경을 구축한 시점에서 다음 작업은 명령 한 번으로 가능합니다.
g++ -g -o $実行ファイル名 $コンパイル対象.cpp
oj dl $コンテストの問題ページURL(ex: https://atcoder.jp/contests/abcxxx/tasks/abcxxx_y)
그러나 솔직히 코딩하는 동안 불필요한 Shell 명령을 치는 것은 귀찮다고 생각했기 때문에 VSCode의 키보드 단축키에 등록하기로 결정했습니다.
컴파일 - 테스트까지 수행하는 Shell 만들기
다음과 같은 Shell 스크립트를 만들었습니다. 이것이라고 매번 oj t -c $実行ファイルのパス
커멘드를 부르므로, 별도 컴파일과 검증만을 실시하는 shell도 작성해 둡니다.
cpp_dl_test.sh
#!/bin/sh
file=$1
# 引数を受け取りファイル名を抽出
fname=$(basename $file)
objfile=`echo $fname | sed 's/\.[^\.]*$//'`
# ディレクトリに移動
cd $(dirname $file)
echo "テストケースURLを記載"
read str
g++ -g -o $objfile $file
rm -r ./test
oj dl $str
oj t --jobs 3 -c "./"$objfile
게다가, oj dl
커멘드로 대응하고 있지 않는, 실행 파일에 대해서 1 케이스만 테스트하는 shell을 작성합니다.
cpp_onecase_only.sh
#!/bin/sh
file=$1
# 引数を受け取りファイル名を抽出
fname=$(basename $file)
objfile=`echo $fname | sed 's/\.[^\.]*$//'`
# ディレクトリに移動
cd $(dirname $file)
g++ -g -o x $file
echo "in:"
cat ./test/sample-1.in
echo ""
echo "out:"
cat ./test/sample-1.in | ./x
VSCode 태스크에 작성한 Shell 지정
다음은 아래와 같이 tasks.json에 작성한 shell을 기재하는 것으로, VSCode의 태스크로부터 shell 스크립트를 호출할 수 있게 됩니다.
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"showOutput": "always",
"label": "atcr test",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_testonly.sh",
"problemMatcher":[]
},
{
"showOutput": "always",
"label": "atcr dl test",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_dl_test.sh",
"problemMatcher":[]
},
{
"showOutput": "always",
"label": "atcr only one",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_onecase_only.sh",
"problemMatcher":[]
}
]
}
VSCode 바로 가기에 작업 등록
VSCode의 아래의 화면에서 키보드 단축키를 설정할 수 있으므로, 여기서 태스크의 실행을 단축키에 등록해 두면 편하다.
마지막으로
이것으로 코딩에 집중할 수 있게 되므로, 콘테스트뿐만 아니라 정진도 추구합니다.
#!/bin/sh
file=$1
# 引数を受け取りファイル名を抽出
fname=$(basename $file)
objfile=`echo $fname | sed 's/\.[^\.]*$//'`
# ディレクトリに移動
cd $(dirname $file)
echo "テストケースURLを記載"
read str
g++ -g -o $objfile $file
rm -r ./test
oj dl $str
oj t --jobs 3 -c "./"$objfile
#!/bin/sh
file=$1
# 引数を受け取りファイル名を抽出
fname=$(basename $file)
objfile=`echo $fname | sed 's/\.[^\.]*$//'`
# ディレクトリに移動
cd $(dirname $file)
g++ -g -o x $file
echo "in:"
cat ./test/sample-1.in
echo ""
echo "out:"
cat ./test/sample-1.in | ./x
다음은 아래와 같이 tasks.json에 작성한 shell을 기재하는 것으로, VSCode의 태스크로부터 shell 스크립트를 호출할 수 있게 됩니다.
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"showOutput": "always",
"label": "atcr test",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_testonly.sh",
"problemMatcher":[]
},
{
"showOutput": "always",
"label": "atcr dl test",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_dl_test.sh",
"problemMatcher":[]
},
{
"showOutput": "always",
"label": "atcr only one",
"type": "shell",
"args": ["${file}"],
"command": "/Users/xxx/Atcoder/cpp_onecase_only.sh",
"problemMatcher":[]
}
]
}
VSCode 바로 가기에 작업 등록
VSCode의 아래의 화면에서 키보드 단축키를 설정할 수 있으므로, 여기서 태스크의 실행을 단축키에 등록해 두면 편하다.
마지막으로
이것으로 코딩에 집중할 수 있게 되므로, 콘테스트뿐만 아니라 정진도 추구합니다.
이것으로 코딩에 집중할 수 있게 되므로, 콘테스트뿐만 아니라 정진도 추구합니다.
Reference
이 문제에 관하여(OSX에 VSCode를 사용하여 Atcoder 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mikanboxaaa/items/892e9fddc8f81c51eac6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)