GN⁺: 좋아요, WezTerm 선호
(alexplescan.com)WezTerm 사용기
시작하기 전에
- WezTerm 설치 필요
- macOS 사용자는 Homebrew로 설치 가능 (
$ brew install wezterm
)
Lua에 대한 설명
- WezTerm의 설정은 Lua로 정의
- Lua는 다른 동적 프로그래밍 언어와 유사하여 쉽게 읽을 수 있음
- 복잡한 설정을 위해 Lua를 깊이 있게 학습하는 것이 좋음
설정 파일과 피드백 루프
- 설정 파일은
$XDG_CONFIG_HOME/wezterm/wezterm.lua
에 위치 - 설정 파일 변경 시 자동으로 재로드
- 디버그 오버레이 (
CTRL + SHIFT + L
)로 로그 확인 가능
외관 설정
색상 테마
- WezTerm은 1,000개 이상의 색상 테마를 제공
- 예시:
config.color_scheme = 'Tokyo Night'
동적 색상 테마
- 새로운 창을 열 때마다 무작위로 색상 테마를 변경하는 예제 코드 제공
시스템 외관 존중
- 시스템의 외관 모드에 따라 색상 테마를 자동으로 변경
-
appearance.lua
파일 생성 후 설정
폰트 설정
- 기본 폰트는 JetBrains Mono
- 예시:
config.font = wezterm.font({ family = 'Berkeley Mono' })
창 스타일링
- 창의 배경 투명도와 블러 설정
- 예시:
config.window_background_opacity = 0.9
상태 표시줄 설정
- 탭 바 오른쪽에 파워라인 스타일의 상태 표시줄 추가
- WezTerm의 이벤트 API 사용
키 설정
기본 키 매핑
- 기본 키 매핑을 유지하거나 비활성화 가능 (
config.disable_default_key_bindings = true
)
키 매핑 예제
-
Option + Left Arrow
와Option + Right Arrow
를 단어 간 이동으로 매핑 - 설정 파일 열기 단축키 설정 (
CMD + ,
)
다중화 기능
- WezTerm의 다중화 기능 사용
- 창 분할 단축키 설정 (
CTRL + SHIFT + P
)
리더 키 설정
- 리더 키를
CTRL + A
로 설정 - 창 분할 단축키를 리더 키와 함께 사용
창 이동
- 창 간 이동을 위한 키 매핑 설정 (vim 방향키 사용)
창 크기 조정
- 창 크기 조정을 위한 키 테이블 설정
- 리더 키와 함께 사용하여 창 크기 조정
프로젝트 작업 공간
작업 공간 생성 및 전환
-
projects.lua
파일 생성 후 프로젝트 전환 함수 추가 - 프로젝트 선택 시 새로운 WezTerm 작업 공간 생성
GN⁺의 정리
- WezTerm은 Lua를 사용한 유연한 설정이 가능하여 다양한 사용자 정의가 가능함
- 자동 재로드와 디버그 오버레이 기능으로 설정 변경이 용이함
- 다중화 기능과 작업 공간 관리 기능이 뛰어나며, 다양한 키 매핑을 통해 생산성을 높일 수 있음
- 비슷한 기능을 제공하는 터미널로는 Alacritty와 kitty가 있음
Hacker News 의견
-
최근 WezTerm으로 전환한 후 매우 만족함. 이전에는 kitty를 사용했으며, iTerm2에서의 설정과 단순함을 좋아했음. WezTerm은 기본적으로 제공하는 기능이 훨씬 뛰어남. 터미널 설정이 짧아서 편집기 화면에 모두 표시됨. 이후 터미널은 신경 쓸 필요가 없어짐
- kitty 사용 시 문제를 자주 겪었고, iTerm2의 기능을 재현하려고 했으나 kitty의 유지보수자의 무뚝뚝하고 무시하는 댓글에 실망함
- 예를 들어, "tmux를 kitty에서 어떻게 설정하나요?"라는 질문에 "하지 마세요, tmux는 멍청해요"라는 답변을 받았음. 결국 포기함
-
WezTerm은 GitHub 이슈에 매우 빠르게 대응하며, 보통 하루나 이틀 내에 문제를 해결해줌. SSH를 통한 modifier 키 관련 작은 문제를 제외하고는 기능이 거의 완벽함. 빠르고 좋음
- 이전에는 Alacritty를 열렬히 사용했으나 원격 emacs를 위한 더 나은 modifier 지원이 필요했음
-
Kubuntu에서 Ubuntu로 전환하면서 Konsole의 일부 기능(무한 스크롤백, 스크롤백 검색)을 원했으나 Konsole을 설치하지 않으려고 WezTerm을 설치함. WezTerm은 즉시 마음에 들었으나, 많은 기능이 잘 발견되지 않음. 문서는 매우 좋고, 저자는 매우 참여적이고 도움이 됨
- 예를 들어, 키보드만으로 큰 텍스트 블록을 선택하는 방법을 찾아서 한 번 해봤으나, 금방 잊어버리고 다시 마우스로 텍스트를 선택하게 됨. 문서 페이지를 다시 검색하는 것보다 빠름
- 참고로, 찾고 있던 페이지는 https://wezfurlong.org/wezterm/copymode.html임
-
Mac Terminal, iTerm2, Kitty, Warp 등을 시도해봤으나 WezTerm에 정착함. 설정이 쉽고, 빠르고, 보기 좋음. 테마도 만들었음
-
WezTerm의 장점은 무엇인가? WezTerm은 완전히 크로스 OS를 지원하여 Linux, macOS, Windows에서 모두 사용할 수 있음. 터미널 설정을 여러 OS에서 공유함
-
WezTerm을 약 1년 동안 사용 중이며, GitHub에서 Wez를 후원하고 있음. WezTerm은 훌륭한 터미널이며, 개발자도 훌륭함. 빠른 복사 및 기타 복사 모드를 자주 사용함
- MacOS 노트북에서 작업용 Linux 머신으로 mosh+tmux와 같은 기능을 사용함. 항상 세션을 실행하여 Mac에서 작업 머신에서 작업할 수 있음. 재연결 가능한 세션과 패널, 탭을 제공함
-
iTerm2를 계속 사용하는 이유는 "Edit->Selection Respects Soft Boundaries" 기능 때문임. 이 기능은 파이프 문자 |를 패널 구분자로 해석하여 선택이 그에 따라 감싸짐
- IRC에서 텍스트를 선택할 때 유용함
- https://github.com/wez/wezterm/issues/596
-
다른 사용자들의 의견에 동의함. macOS를 사용하기 시작한 지 거의 10년이 되었고, iTerm2를 사용해왔음. 최근 느려지기 시작했음. cmd-tab을 할 때 터미널이 나타나기까지 1초 이상 기다려야 했음
- 여러 대안을 평가했으나 마음에 들지 않았음. 한 터미널은 계정/로그인이 필요했고, 다른 하나는 {Java,Type}Script로 작성되어 간단한 명령어도 비동기 스트림 문제로 인해 깨짐
- WezTerm은 매우 빠르고, 설정 가능하며, 기본적으로 OneDark (base16) 테마를 제공함
- 초기 설정 시 cmd-left와 cmd-right를 lua 설정에 추가해야 했음
-
Wez는 Rust로 시스템 프로그래밍에 관한 책을 출간할 예정임
-
OT: HashiCorp 창립자가 만든 Ghostty에 가장 기대됨