2018년 12월 24일 월요일

프로그램 개발 개요

IDE 를 사용할 수 있다면 IDE 를 사용하는 편이 수월할 수도 있으나 shell 과 text 편집 기능 정도만 있는 text editor 두가지로 개발을 하는데 크게 무리가 없는 정도의 프로젝트의 경우 emacs 를 선택하는 것도 좋을 것이라 생각한다

사실 emacs 를 주로 사용하게 되면서 되도록이면 개발은 emacs 로 진행하고 있고 emacs 로 어떻게든 개발할 수 있는 여지가 있는지 찾게 되고 운이 좋은건지 대부분은 방법이 있었다

새로운 언어가 나오면 먼저 해당 소스 코드의 문법 강조 package 를 찾아 설치하고 shell 로 빌드하는 방법을 찾아서 shell script 또는 makefile 등을 이용해 명령어 한번에 빌드하거나 테스트 할 수 있는 정도만 준비하고 나머진 일반적인 emacs 사용법에서 다르지 않다

이러한 방법이 더 좋으니 모두 사용하라고 권할 것은 아니지만 emacs 로 python 이나 swift (linux 버전) 와 같이 꽤나 새로 나온 언어 또는 앞으로 새롭게 나올 언어들도 별다른 무리 없이 emacs 는 지원할 수 있다는 점은 흥미로운 부분이다



코딩


문법 강조


M-x package-list-packages RET
<파일 포맷>-mode 라는 이름으로 문법 강조 package 들이 있음
예)
cython 은 cython-mode 라는 package 를 설치
package 설치 후에는 열려 있는 파일은 닫았다가 열던지 M-x cython-mode RET 등으로 버퍼를 해당 모드로 적용

참고(패키지 설치): https://tjemacs.blogspot.com/2018/11/package.html

들여쓰기


소스 코드의 경우 tab 키의 기본 동작은 자동 들여쓰기로 tab 키를 여러번 누른다고 문자열 tab 이 입력되는 것이 아님

Enter 를 치면 자동으로 들여쓰기가 기본 동작이지만 emacs 설정에 따라 M-j 로 개행을 삽입해야 자동 들여쓰기가 동작하는 경우 있음

Python 의 경우 들여쓰기 의도를 파악하기 모호하기 때문에 tab 을 계속 누르면 들여쓰기가 늘었다가 다시 맨앞으로 돌아오고 다시 늘어나는 식으로 들여쓰기를 선택할 수 있도록 함

여러 줄을 선택하고 tab 을 누르면 해당 영역의 코드 모두 자동 들여쓰기

주석


  • C-; - 주석 삽입
  • 선택 후 C-; - 주석으로 만들기 또는 이미 주석인 경우 주석 해제


주석 내용 입력 중 M-j 를 누르면 개행이 되면서 곧바로 주석 내용 입력 상태


컴파일


makefile 의 경우 make 명령으로 컴파일하고 오류 및 경고가 출력되고 실행 결과가 0 인지 아닌지에 따라 빌드가 결과적으로 성공인지 실패인지 가늠

emacs 의 compilation 버퍼는 빌드 과정의 출력 정보를 분석해 컴파일 오류 및 경고에 해당하는 소스 파일 위치를 강조 표시하고 빌드 결과가 성공인지 실패인지 버퍼 마지막에 알림

Compilation 버퍼에서 M-n 또는 M-p 로 오류 및 경고에 해당하는 출력문 사이를 이동할 수 있음

C-x ` 로 첫번째 오류 및 경고 위치의 소스 파일의 해당 줄을 표시


참고(컴파일 버퍼): https://tjemacs.blogspot.com/2018/12/compilation.html


소스 버전 관리


SVN 또는 GIT 등의 소스 버전 관리 도구의 편리 기능 제공

버전 관리 도구 마다 유사하게 제공하는 기능 (예: log, commit, blame, diff, push 등) 은 공통된 인터페이스로 제공

특정 버전 관리 도구만의 고유 기능은 따로 shell 에서 수행해야 하는 한계는 있음


참고 (Version control): https://www.gnu.org/software/emacs/manual/html_node/emacs/Version-Control.html




댓글 없음:

댓글 쓰기