7/27/2015

Window terminal : ConEmu + Git bash

클린 코드를 위한 테스트 주도 개발을 읽으며, git bash를 쓰게 되었는데 투박하고 탭 기능을 지원하지 않아서 아쉬웠다.
working session 그대로 탭 복사하는 기능까지 되었으면 하였다. 이는 다음 포스팅으로 생각 중이다.

알아보니 ConEmu가 있었다. Terminal wrapper 같은 것으로 git bash를 내부에서 띄워주고 탭 관리를 가능하게 했다.




설치하기



  1. Git bash를 설치
  2. ConEmu를 설치
  3. ConEmu를 열고, settings를 열음
  4. Settings 목록에서 startup - tasks를 열음
  5. 새로운 task를 만들거나, 기존의 것을 수정 
    • "[git directory]\bin\sh.exe --login -s"
    • Hot Key를 등록
위에서 나는 조금 다르게 했는데, 
  • 4번 대신에 Bash::Git bash의 Hot key만 등록하고
  • Startup 메뉴에서 Specified named task를 {Bash::Git bash}로 선택
  • 하여 기본적으로 Git bash가 실행되도록 함. default는 cmd

그러면 Git bash를 기본으로 하는 탭 생성키까지 설정이 완료 된다.


폰트 적용



한글과 영어를 모두 지원하는 폰트를 설치하고 (위 링크의 Monaco 추천)

Settings의 Main에서  Main console font를 변경한다.


한글 입력 문제

??? 으로 표시되는 입출력 문제는 ConEmu 한글 + 폰트 참고

뭔가 잘못건드리지 않는한 기본적으로 잘 된다. (git bash 환경) 

=> 필자는 뭔가 잘못했다   

Vim 저장 때문에 이것저것 만지다가 terminal 상에서 set encoding 명령어를 실행했는데 

이게 유효한 건지는 모르겠지만, 보통 일어나는 ??? 로 표시되는 한글 문제가 아니라

Ϸፊ**ġ *Ϸሄ ō*α* 같이 표시되었다.

출력은 괜찮은데 terminal 상의 한글 입력만이 문제였다.


결국은 git을 다시 설치하여 git bash 설정을 초기화 했다.

user setting 파일인 ~/.bashrc와 ~/.inputrc는 바뀐 내용이 없었지만 다시 한글 입력이 가능해졌다.



Vim 한글 저장 문제

잘쓰던 참에 한글 주석을 적어서, selenium을 돌리다가 encoding 문제가 발생하였다.

py 파일에 encoding 선언도 하였는데 문제가 발생한 이유는 vim에서 utf-8로 저장하지 않아 한글이 깨졌기 때문이다.

표시는 잘되나, 저장 후 cat을 했는데 잘 안나오면 vim에서 파일 저장시 사용하는 인코딩 문제이다.

이는 아래와 같이  $ vim ~/.vimrc 로 vim 설정 파일을 만들어주면 된다.

set tenc=korea
set enc=utf-8
view raw .vimrc hosted with ❤ by GitHub

tenc는 terminal의 encoding을 의미. 
vim 상에서는 :set termencoding=utf-8 로 설정 가능하다. 하지만 vim 에서 설정하면 그 때만 유효하다. 

enc는 vim으로 열 파일의 encoding을 의미. 값을 확인하고 싶으면 vim에서 :set encoding?

즉, utf-8 파일을 열어서 터미널의 encoding인 korea로 맞추라는 뜻이다.


마무리


한글 처리에 아주 삽질을 해서, 인코딩 시점으로 덕분에 터미널 위에 돌아가는 것들의 구성을 느낄 수 있었다.

그래도 나름 한번 정리를 해놓으니 나중에 덜 고생을 할 것이라고 믿는다.


Ref