rein's world

난 아직도 커맨드라인이 더 편하다

대학(원)을 떠나 회사에 다닌 지도 벌써 4년이 다 되어 간다. 하지만 여전히 커맨드라인 환경(on *nix)이 몸에 더 익은 건 어쩔 수 없나 싶다.  Win32 GUI 환경의 이런저런 개발 도구를 쓰긴 하지만, 정작 자주 하는 작업은 죄다 커맨드라인으로 하게 되더라.

예를 들어, 소스 코드를 수정한 후 커밋하기 까지 다음과 같은 과정을 거친다.

  1. 소스 트리 전체 리빌드
  2. 소스 트리 내의 유닛 테스트 실행
  3. 소스 트리 diff 보기
  4. 3의 결과를 보면서 커밋 로그 쓰기

이 작업을 어떻게 하느냐고?

1, 2는

msbuild build-configuration.xml /t:Clean;Build;Test

로 한다.

make clean; make test

의 느낌으로?

3은 이렇게 한다. 소스 트리 diff 보는 건 꽤 긴 시간 동안 tortoise svn 을 써왔지만, 가장 만족스러운 diff-viewer 는 vim 이다. 그래서 아래처럼 매크로를 만들어놓고 쓴다.1

svn diff –x –pbu %* | gvim -c "set ft=diff"

이게 변경 사항 있는 부분 왔다갔다하기도 편하고, VisualStudio 나 기타 편집할 때 쓰는 툴(=vi 혹은 그에 상응하는 에디터)과도 일치해서 이런 식으로 쓴다.

4의 커밋 로그는 저거 보면서 svn commit 해서 뜨는 gvim 혹은 vim으로 작성2 한 후, 파일을 저장하면서 커밋한다.

svn 저장소가 커지면서 좀 느리다고 느낀 이후로 커맨드라인으로 최대한 이주하는게 내 방침이 되었다. 그리고 예전 같은 편안함을 다시 느끼게 되서 꽤나 만족스럽다. 역시 익숙한게 최고?

좀 과한 외삽일진 모르겠지만, 이 때 들인 노력이 얼마 안된다는 걸 생각하면, 이거 말고 다른 영역의 프로그래밍이라도, *nix 쪽에 뿌리를 둔 프로그래머라면 MS Windows 환경에서도 약간의 삽질(?)과 수고를 통해 좀 더 편안하게 작업할 수 있을 것 같다.


  1. 실제로는 다른 설정들 때문에 설정 디렉터리 회피 --config-dir=nul, vim 닫을 때 “저장 하시겠습니까?”류의 메시지를 피하기 위한 set nomodified 같은 게 더 들어간다. ↩︎

  2. set SVN_EDITOR=gvim –f 로 해 둠. ↩︎