나의 커맨드라인 인터페이스

웹 개발자라면 커맨드라인 인터페이스를 이용해 처리해야하는 일들이 종종 있다. 나는 CLI를 잘 못 쓰는 편이라서 딱히 하드한 설정을 사용하는 건 아니지만 맥에 새로 CLI 환경을 세팅하면서 은근히 여러가지 신경 쓸 거리가 많아서 정리도 한 번 할 겸해서 내 환경을 포스팅 해본다.

터미널

맥의 기본 터미널 앱을 사용한다. iTerm2를 추천하는 경우가 많은데 좋은 앱임에는 분명하지만 나는 인터페이스가 안 이쁘면 잘 안 쓴다. 즉, 이걸 쓰는 건 그냥 취향이다. 기본 맥 터미널도 꽤 잘 만들어졌고, 여태까지 특별히 불편함을 느낀 일은 없었다. iTerm2보다는 Electron 기반 터미널인 Hyper의 한글 지원을 기다리고 있는데 언제 제대로 될런지..

터미널 테마

Dracular 테마가 나온 이후로 나는 가능한 모든 프로그램(Alfred, Atom, WebStorm)을 Dracular 테마로 변경하고 있다. 터미널도 예외는 아니다.

폰트

Ubuntu Mono derivative Powerline이라는 폰트를 사용한다. 밑에서 다시 언급하겠지만 내가 사용하는 zsh 테마가 Powerline을 사용하기 때문에 Powerline을 지원하는 폰트를 사용해야하고, 그 중에 Ubuntu Mono를 선택했다.

셸 인터페이스(Shell interface)

따로 설명을 따로 할 필요가 없을 정도로 유명한 조합, zsh + oh my zsh 를 사용하고 있다.

zsh 테마

Bullet Train이라는 테마를 사용하고 있다. 내장된 테마가 아니기 때문에 별도의 설치가 필요하다. Bullet Train을 선택한 이유는, 커맨드 라인에 많은 정보를 표시하는 경우 다른 테마들은 커서가 오른쪽으로 쏠리면서 커서 위치가 일관적이지 않은데, Bullet Train은 많은 정보를 표시하면서도 커서가 개행된 위치에 있기 때문에 항상 커서 위치가 같기 때문이다. 물론 예쁘기도 하고.

zsh 플러그인

zsh autosuggestions

zsh autosuggestions plugin

전에 한 동료분이 fish를 사용했었는데, 가장 충격적이었던 게 커맨드 자동완성이었다. 나는 zsh에서도 이런 기능을 사용할 수 있는지 찾아보기 시작했고 역시나 플러그인이 있었다. fish를 사용해본적이 없어서 fish의 그것보다 강력한지 약한지는 모르겠으나 쓸만하다. 커맨드 history 기반으로 커맨드를 추천해주는 것 같은데, 사용한 적이 없는 커맨드라면 자동완성이 되지 않지만 자주 사용하는 커맨드의 경우 쉽게 자동완성할 수 있다. 실제로 생산성이 올라가기 때문에 강력 추천하는 플러그인이다.

zsh-syntax-highlighting

이 플러그인도 fish의 기능으로부터 영감을 받은 플러그인이다. 커맨드라인에서 명령어를 입력할 때 문법 강조를 해준다. 예쁨이 쬐끔 향상되는 효과가 있다.

autojump

zsh automjump plugin

유명한 플러그인. 원래는 cd를 여러 번 쳐서 옮겨다닐 디렉토리를 j 한 방으로 옮겨갈 수 있다. 가본 적 없는 디렉토리는 바로 옮겨갈 수 없지만, 대개 디렉토리를 옮기는 경우는 이미 가본 적 있는 디렉토리를 여러 번 방문하게 되는 경우이므로 활용할 기회가 잦다. 위에 언급한 zsh-autosuggestion과 같이 활용한다면 대부분의 디렉토리 이동을 타이핑 몇 번으로 처리할 수 있다. 속도도 느리지 않다.