Post

VScode

VScode

1
C:\> code <file\_name>

extension

그냥 검색하고 나서 정렬기준 설치 수로 놓고 조회해서 상위권 다운받으면 된다.

  • Active File in statusbar
  • Path Intellisense
  • git history
  • C/C++
  • HTML Snippets
  • Partial Diff
  • sftp

원격 코딩

rmate는 파일단위고 원격에서 열 파일을 지정해서 명령어 쳐야해서 되게 불편하고. 호스트<>가상머신 간 작업만 할거면 공유폴더로 처리해도 되기는 하는데, ftp를 사용하는 편이 좋은게 ftp를 쓰면 파일을 실수로 지워도 한 쪽에는 남아있기 때문. auto upload만 활성화 하면 공유 폴더 처럼 동기화 신경 안쓰고 쓸 수 있기도 해서. ftp를 쓰는게 제일 괜찮은 듯.

compile

Ctrl+Shift+B - Other을 누르면 뜨는 tasks.json에 다음을 입력

1
2
3
4
5
6
7
8
9
{
"version": "???",
"command": "python",
"isShellCommand": true,
"showOutput": "always",
"args": [
"${file}"
]
}
remote vscode

rmate는 파일 하나 단위로 동작해서 하나 열 때 마다 명령어 써줘야해 너무 불편. ftp를 사용하는게 더 편하고, extension 중에서는 sftp가 제일 깔끔한 듯. 로컬에서 가상머신이랑만 사용할 목적이면 그냥 공유폴더로 묶는 것도 괜찮다.

입/출력을 terminal로 변경하기

지금은 해결됐다. VScode에서 msbuild로 build할 때 task run( Ctrl + Shift + B ) 를 사용하게 되는데, task 동작의 입출력은 기본 panel의 OUTPUT으로 연결되어 있다.

문제는 OUTPUT창에서 한글이 깨져나온다는 점과 scanf같은 입력 함수가 있을 때 입력을 넣을 수가 없어 대기하게 된다는 것이다.

디버그를 사용해도 되지만, 입/출력을 terminal로 변경하는 편이 더 좋다.

https://code.visualstudio.com/updates/v1_9#_task-execution-in-terminal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"version": "0.1.0",
"\_runner": "terminal",
"tasks": [
{
"taskName": "python3",
"command": "python3",
"args": ["${file}"],
"isShellCommand": true,
"isBackground": true,
"isBuildCommand": true
}
]
}

"command"에 full path를 지정해도 된다.

실행할 파일은 task.json의 arg에 지정. 근데 어차피 vsproject.vcxproj만 실행하게 될거니까 수정할 일은 거의 없을 듯.

https://code.visualstudio.com/docs/languages/cpp

https://code.visualstudio.com/docs/editor/tasks

실행할 파일은 .c파일이 아니라 프로젝트 파일을 지정해야 함.

프로젝트 만드는 방법

https://msdn.microsoft.com/ko-kr/library/dd293607.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
<PropertyGroup>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ItemGroup>
<ClCompile Include="tes.c" />
</ItemGroup>
<!--
<ItemGroup>
<Compile Include="${workspaceRoot}/tes.h" />
</ItemGroup>
-->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>

debug

https://code.visualstudio.com/Docs/editor/debugging

task.json처럼 launch.json의 program에 파일 이름을 지정해서 사용해야 하지만 어차피 ${workspaceRoot}/Debug/vsproject.exe로 고정이라 수정할 일은 거의 없을 듯.

pylint 비활성화

https://github.com/DonJayamanne/pythonVSCode/wiki/Linting#pylint

settings.json에 다음 항목 추가

1
2
3
4
5
6
"python.linting.pylintArgs": [
"--rcfile",
"pylint.config",
"--disable",
"missing-docstring"
]

.vscode 폴더에 pylint.config 파일 만들어 다음 내용 추가

1
2
3
4
5
6
[MESSAGES CONTROL]
#C0111 Missing docstring
#C0103 Invalid constant name
#C0301 Line too long
#C0303 trailing whitespace
disable=C0111,C0103,C0303,C0301

msbuild ( MS C++ compiler )

http://landinghub.visualstudio.com/visual-cpp-build-tools

설치하고 msbuild 위치를 PATH에 추가해줘야함. 근데 include 할 때 .h경로도 못찾아서 그냥 sdk도 추가로 설치해줘야하는듯 또는

https://msdn.microsoft.com/en-us/library/dd334499.aspx

This post is licensed under CC BY 4.0 by the author.