개발 환경 자동 구축 스크립트 모음.
데비안 계열의 리눅스 배포판을 지원합니다. 현재 Ubuntu 16.04 (AMD64), Ubuntu 18.04 (AMD64) 플랫폼에서 테스트 및 실사용 중입니다.
필수 스크립트는 setup 스크립트를 호출하면 모두 적용됩니다. 나머지 스크립트는 optional 디렉토리로 이동한 뒤, 직접 실행합니다.
git clone https://github.com/makerj/dev.git
cd dev
./setup
- essential
- PPA 관리
- 터미널 관리
- 데스크탑 환경 관리
- vim 커스터마이징
- shell 커스터마이징
- git 커스터마이징
- optional
- 프로그래밍 언어별 개발 환경 구축
- go
- nodejs LTS
- python
- rust
- 기타 등등
시스템 프로그래밍을 하기 위해 다양한 IDE와 text edtior를 사용해 본 결과, VIM이 가장 C/C++ 언어를 사용한 개발에 효율적이라는 결론을 내렸습니다. 물론 이 저장소가 제공하는 다른 언어에 대해서도 VIM을 사용한 개발이 충분히 가능하나, 다른 언어의 경우 Jetbrains의 IDE의 도움을 받는 것이 효율이 더 좋습니다.
VIM8에 커스터마이징 된 단축키와 플러그인이 자동으로 설치됩니다. 플러그인의 규모가 크기 때문에 200MB이상의 저장 공간과 충분한 빌드 시간이 필요합니다.
공통
F2NerdTree 호출- 디렉토리 구조를 보여줍니다
- git을 사용중인 디렉토리는 변경 사항 강조 또한 이루어집니다
F3TagBar 호출- 현재 작업 중인 소스코드의 전역 변수, 타입 선언, 함수 선언, 함수 목록을 보여줍니다
- 최적화된 플러그인이 아니라서 랙을 유발합니다. 1000줄 이상의 파일 작업시엔 필요할때만 켜주세요.
F7맞춤법 검사기 토글F8Tab을 8스페이스로 취급 (기본값은 4 스페이스)F9shell 호출. 호출된 shell에서exit을 입력하면 vim으로 돌아옵니다F10빌드 시스템 호출 (CMake, Make 순으로 선호)Ctrl-F10빌드 시스템 호출. 빌드 타겟을 지정할 수 있습니다. (CMake, Make 순으로 선호)F12작업중인 모든 파일을 저장하고 종료Spacevim window 포커스 전환. 좌에서 우로 순환합니다Shift-e현재 디렉토리 내의 모든 파일을 대상으로 검색을 시작합니다Ctrl-e열려있는 버퍼를 대상으로 검색을 시작합니다Ctrl-j현재 라인 또는 선택된 라인을 한칸 위로 올립니다Ctrl-k현재 라인 또는 선택된 라인을 한칸 아래로 내립니다,w왼쪽 버퍼 탭으로 이동,e오른쪽 버퍼 탭으로 이동,z현재 버퍼 탭 닫기,ddoxygen 주석을 자동으로 생성합니다,g현재 심볼을 모든 텍스트에서 검색합니다,q현재 함수의 doxygen 문서를 preview 윈도우에 출력합니다,f현재 라인의 문법 오류 및 경고를 자동으로 수정합니다,j현재 함수가 호출하는 모든 함수를 추적합니다,J현재 함수를 호출하는 모든 함수를 추적합니다,n현재 커서 아래에 있는 숫자를 다양한 단위로 재해석해 화면에 출력합니다,t현재 커서 아래에 있는 C,C++ 타입의 최종 타입을 출력합니다. typedef, auto 등으로 감춰진 타입의 실제 타입을 알아냅니다,p현재 작업중인 파일의 상대 경로를 출력합니다,P현재 작업중인 파일의 절대 경로를 출력합니다,vGit 로그 분석 툴tig를 호출합니다,Space라인 넘버를 현재 라인에 상대적인 값으로 출력하도록 토글합니다
자동 완성 및 소스코드 분석을 최대한 효율적으로 하기 위해 VIM8 + YCM + universal-ctags으로 구성된 개발 환경을 제공합니다.
- 최신 플러그인들을 지원하기 위해 VIM8이 자동으로 설치됩니다
- 자동 완성 & 자동 정정 & 호출부 이동 & 정의부 이동을 위해 clang을 통해 소스를 분석하는 YCM을 사용합니다
- 현재 작업중인 소스코드의 아웃라인을 볼 수 있도록 universal-ctags를 사용합니다
- ctags를 위한 태그 데이터베이스는 프로젝트의 루트 디렉토리에서 터미널 명령
tags를 입력하면 자동으로 구축됩니다 - 빠른 문서화를 위해 doxygen 주석 자동 생성을 지원합니다
어플리케이션 및 시스템 개발, 그리고 서버 관리를 편하게 할 수 있도록 터미널의 최대한 많은 것들을 효율적으로 커스터마이징합니다.
- 사실상의 리눅스 표준 쉘인 Bash와 잘 호환되고, 편리성은 더 높은 zsh을 사용합니다
- zsh 커스터마이징 및 플러그인 관리에 oh-my-zsh을 사용합니다
- tmux의 사용을 최소화하는 대신, 최대한 많은 것을 한 터미널에서 합니다
- 디렉토리 이동에
z를 사용합니다. z를 사용하면 현재 자신이 어느 디렉토리에 있더라도 편리하게 이전에 방문한 디렉토리로 이동할 수 있습니다 - 이전에 사용한 터미널 명령을 기억합니다. 이전에 내린 명령은 힌트 형태로 나타나며, End키 또는 ->화살표를 사용해 사용할 수 있습니다
- zsh-autosuggestions 플러그인을 사용해 각종 리눅스 유틸리티의 매개변수를 탭으로 완성할 수 있습니다