본문 바로가기

gitui - Rust로 만든 가벼운 터미널용 Git 클라이언트

기술적인 이야기/터미널 및 셸 2022. 5. 1.
반응형

Git은 자주 쓰는 vcs이지만 터미널 커맨드로 모든 작업을 하기엔 귀찮은 일이 많다. 그래서 여러 GUI 클라이언트가 나와있고 골라서 쓰면 된다. 그런데 자주 쓰는 Xcode의 Git 기능은 한글 자소 분리가 골치 아프다. Git만 쓰려고 무거운 vscode를 띄우는 것도 바보 같았다. Emacs는 한동안 관리를 안 했더니 상태가 영 메롱 했다.

그래서 GUI 대신 터미널 클라이언트를 찾아봤다. 옛날부터 이름은 자주 들어본 tig도 있고 lazygit이나 gitui 같은 것도 발견했다. 이 중 gitui가 오류도 적고 Rust로 만들어 빠르고 버그도 적다고 자랑(?)하길래 써보기로 했다.

첫 느낌

설치는 여러 방법이 있지만 개인적으로 자주 사용하는 Homebrew로 간단히 설치가 되었다.

brew install gitui

이후 터미널에서 원하는 저장소에서 gitui 명령을 입력하기만 하면 화면이 뜬다.

gitui로 히스토리 살펴보기

화면은 약간 취향에 맞진 않았지만 그럴듯하게 나왔다. 개인적인 선호로 터미널에서 테두리 인터페이스는 그다지 좋아하지 않는다는 것이 좀 영향을 미친 것뿐이다.

사용법은 쉬운 편이다. 하단에 키 설명이 거의 다 나오기 때문에 Git 용어만 알고 있다면 굳이 설명서나 도움말을 들쳐볼 필요도 없을 것 같다. 커밋할 때도 방향키로 파일을 선택해서 하면 하단에 알려주는 대로 스테이지 단축키와 커밋 단축키만 누르면 된다. 그러면 영화(?)에서 자주 보던 스타일의 커밋 메시지 입력 인터페이스를 볼 수 있다.

약간의 불편함으로 커밋 메시지에 한글을 쓸 때가 좀 불친절한 느낌이었다. 한글이 완성되는 모습이 보이지 않는다. 커서가 없어서 답답한 느낌이 들기도 했다. 영어를 쓰기엔 괜찮은 인터페이스 일지도 모르겠지만 말이다.

개인적인 기호로 약간 더 불편함이 있었다. 바로 vim 키맵이 아니라는 점이다. 특히 커서 키가 쓸데없이 작고 이상한 위치에 있는 맥에서는 쓰기가 많이 불편했다. 쓸 수 없을 정도는 아니지만 솔직히 정이 떨어질 정도였다.

물론 나중에 GitHub 저장소의 문서를 읽어보며 반성했다. 의외로 로우 레벨 급의 설정 방법이 지원되고 있었기 때문이다.

자 그럼 조금만 더 시도해보자.

반응형

취향대로 설정하기

vim 키맵 적용

https://raw.githubusercontent.com/extrawurst/gitui/master/vim_style_key_config.ron 내용을 $HOME/.config/gitui/key_bindings.ron 파일에 쓰고 저장하자. 이후 gitui를 실행시켜 보면 Vim 스타일대로 h, i, j, k 키 등으로 내비게이션이 가능해진다. 이 정도만 해도 상당히 편해진다.

나머지 OS의 경우 https://github.com/extrawurst/gitui/blob/master/KEY_CONFIG.md 글을 참고하자.

색상

앞서 게재한 초기 스크린샷의 색상이 좀 이상하다. 내 터미널 설정이 잘못된 것일지 아니면 기본 테마가 라이트 테마인 것인지는 모르겠지만 테두리 등 일부 색이 배경에 묻혀서 잘 안 보인다.

그렇다면 테마를 어느 정도 수정해 줘야 할 것 같다. 지원되는 다른 테마가 없으니 다 손수 해야 한다.

테마는 기본적으로 $HOME/.config/gitui/themeron 파일에 저장되는데 gitui를 설치하고 처음 실행하면 기본 테마 파일이 생기므로 템플릿 찾을 걱정은 할 필요가 없다. 따라서 이 파일을 열어서 원하는 색상으로 커스터마이징 하면 된다.

개인적으로는 이렇게 세팅했다.

(
    selected_tab: White,
    command_fg: White,
    selection_bg: Blue,
    cmdbar_extra_lines_bg: Blue,
    disabled_fg: Gray,
    diff_line_add: Green,
    diff_line_delete: Red,
    diff_file_added: LightGreen,
    diff_file_removed: LightRed,
    diff_file_moved: LightMagenta,
    diff_file_modified: Yellow,
    commit_hash: Gray,
    commit_time: LightCyan,
    commit_author: Green,
    danger_fg: Red,
    push_gauge_bg: Blue,
    push_gauge_fg: Reset,
)

테마를 이렇게 수정하니 아래와 같은 화면을 볼 수 있었다.

gitui 테마를 살짝 조정한 화면

사실 색상이 완전히 마음에 들지는 않는다. 개인적으론 그냥 2~3색 정도만 쓰는 걸 선호하는데 색상 지원 상태가 그다지 세분화되어있지는 않았다. 물론 이제는 쓸 수는 있는 색상 상태라 큰 불만은 없겠지만 말이다.

색상 이름은 https://docs.rs/tui/0.12.0/tui/style/enum.Color.html를 참고하자. rgb는 터미널에 따라 동작하지 않는 경우도 있으니 가급적 표준 16색 이름을 사용하는 편이 좋을 것 같다.

나중에 업데이트되면 테마 항목이 추가될 수도 있는데 src/ui/style.rs 파일의 제일 하단부에 기본 테마가 하드 코딩되어있으니 참고하자. 물론 추후에 이 내용은 바뀔 수도 있다.

마무리

사실 이 글을 쓰는 동안 망가졌었던 Doom Emacs를 고쳤다. 결국 오리지널 Magit으로 돌아갔다는 말이다. vscode의 edmagit 확장도 마우스 없이 쓰기엔 뭔가 불편했기도 했다. 세상사 마음대로 되는 것이 없다 보니 시간을 투자해서 타협을 했다. 물론 gitui가 불편하거나 부족한 것은 아니라서 터미널에서 종종 쓸 생각이다. 단지 주력 프로젝트 개발을 위한 (손에 익은) Git 클라이언트는 역시 Magit을 넘는 물건이 없을 것 같다.

 

GitHub - extrawurst/gitui: Blazing 💥 fast terminal-ui for git written in rust 🦀

Blazing 💥 fast terminal-ui for git written in rust 🦀 - GitHub - extrawurst/gitui: Blazing 💥 fast terminal-ui for git written in rust 🦀

github.com

 

edamagit, vscode용 Magit

vscode가 대중화되고 있는 시대다. 과거 IE와 비슷하게 독점 수준의 에디터가 되어가고 있다고 평가될 정도다. 하지만 그럼에도 불구하고 개인적으로 Emacs를 주력으로 써오고 있었다. 그런데 에디

seorenn.tistory.com

728x90
반응형

댓글