임베디드 개발자가 사용하는 vscode 정리

잡설

계속 업데이트할 예정입니다. 임베디드 개발자가 vscode 쓰려니 자꾸 vim으로 돌아가고 싶네요.

Remote Development using SSH

공식 홈페이지 : https://code.visualstudio.com/docs/remote/ssh
Git control이 가능합니다! 다 필요없으니 이거 쓰세요! 마소 만세!
sshfs와 sftp Extension으로는 해결되지 않는 문제가 있었으니, Git control입니다. remote source control하라고 git을 만들어놨더니 remote로 git을 쓰고 있으니(이게 뭔 말이야) 근데 많이들 이렇게 하니 문제는 문제죠. 마소 개발자들도 힘들었던지 결국 해결해내고 말았네요.

설치

아직 정리가 안된 관계로 간단히 서술합니다. 차후 다시 정리하겠습니다.
  • Visual Studio Code Insiders. 설치. vscode 베타 버전입니다. 2019년 5월 27일 현재 Insiders 버전에서만 가능하답니다.
  • VSCode의 Extension에서 Remote Development 검색하여 설치합니다.
  • (확인 예정) 윈도우 powershell에서 ssh-genkey 실행. c:\users\<사용자명>\.ssh\ 에서 id_rsa.pub 파일을 서버의 ~/.ssh/에 authorized_keys 파일명으로 업데이트
  • VSCode의 F1 에서 Remote-SSH: Connect to Host... 선택 후 <id>@<서버명> 입력하여 접속
  • VSCode 에서 File->Open Folder
결정적인 도움을 준 제 베프에게 감사드립니다. (이 글을 안보겠지만)

SSH FS

완벽한 솔루션을 찾은 관계로 사용하지 않습니다.
공식 홈페이지 : https://github.com/SchoofsKelvin/vscode-sshfs
vscode를 쓰지 않았던 중요한 이유를 해결해준 extension입니다.
하지만 치명적인 단점이 있으니, git source control이 되지 않습니다. 이에 대해 sshfs 측에서는 별로 할수 있는게 없다며 close합니다. 완벽한 솔루션은 없으니 git control은 ssh로 해야죠. 아쉽네요.

설치 및 설정 방법

  • vscode extension에서 ssh fs 검색하여 설치
  • ctrl+shift+p "SSH FS: Create a SSH FS configuration" 검색
  • Create new configuration에서 이름 입력 후 save
  • Host : 서버 주소 입력
  • Root : 접속 후 이동할 Path 입력
  • Username : ID 입력
  • Private Key
    • (리눅스 서버기준) 서버에서 다음과 같은 명령 수행
    • 서버에서 id_rsa 다운로드

$ ssh-keygen # rsa key 생성 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/shaun/.ssh/id_rsa):
/home/shaun/.ssh/id_rsa already exists.
Overwrite (y/n)?
$ cd ~/.ssh/
$ ls
id_rsa id_rsa.pub known_hosts
$ cp id_rsa.pub authorized_keys # 공개키를 authorized_keys로 사용
    • vscode에서 Private key의 prompt 에서 다운로드한 id_rsa 파일 선택 (인증키에 대해 자세히 알고 싶다면 구글링하시기 바랍니다.)
    • Save 하여 설정 완료
    • 좌측 탭 아래에 생긴 SSH FILE SYSTEMS에서 해당 서버에 마우스 우클릭하여 접속
  • UNTITLED (WORKSPACE) 에 SSH FS - Name 클릭하여 디렉토리 확인.

sshfs 성능 향상

sshfs의 가장 큰 단점은 성능입니다. 모든 데이터를 암호화하니 당연히 성능이 느릴수밖에 없죠. 그렇다면? 암호화 안하면 되죠. 추가로 cache를 사용하면 성능이 더 좋아지겠습니다.


sudo sshfs -o allow_other -o cache=yes -o kernel_cache -o compression=no  \
shaun@192.168.1.201:/mnt/e/work/ ./work/



텍스트 입력 키 바인딩

ctrl+shift+p 검색 Preferences : Open Keyboard Shortcuts (JSON)

// Place your key bindings in this file to override the defaults
[{ 
    "key": "ctrl+f6", 
     "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "snippet": "\nprintf(\"%s %d %s : \\n\", __FILE__, __LINE__, __func__);"
    }
},
]

터미널

ctrl+~ 로 터미널을 열고 닫을 수 있습니다.
설정을 통해 터미널의 종류를 Power Shell, WSL 로 변경 가능. 설정을 들어가는 방법은 까먹었지만 WSL 을 사용하며 ssh로 서버에 접속합니다.


단축키(Shortcut)

화면분할 및 이동

  • split : ctrl+\
  • horizontal split : ctrl+k+\
  • 좌측부터 윈도우 이동 : ctrl+1 ctrl+2 ...
  • 탭 이동 : alt+1 alt+2 ...
  • 대괄호 반대측 이동 : ctrl+shift+\

Git 관련 단축키


  • diff시 다음 변경점으로 이동 : alt+F5


댓글

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

git pull 을 했더니 branch가 갈라지는 경우

리눅스 멀티코어를 사용하는 tar 압축/해제