저는 터미널로 iTerm2를 사용합니다. 그리고 iTerm2는 트루컬러(24bit True Color)를 지원하는 터미널입니다. 그런데 이상하게도 이맥스(Emacs)를 터미널 모드로 띄워보면 GUI 모드와 색상이 다른 경우를 종종 볼 수 있습니다. 이는 사용하는 터미널 타입이 트루 컬러 모드가 아니기 때문에 나타나는 어쩔 수 없는 증상입니다.
터미널에서 트루컬러를 제대로 지원하기 위해서 약간의 트윅(tweak)이 필요합니다. 참고로 이 트윅은 개인적으로 macOS에서 iTerm2로만 확인했기 때문에 다른 OS나 터미널 앱에서는 어떻게 되는지는 잘 모른다는 것에 주의 부탁드립니다.
우선 xterm-24bit.terminfo
라는 파일을 만들고 아래 내용을 붙여 넣습니다.
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
sitm=\E[3m,
ritm=\E[23m,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
에디터는 개인이 선호하는 아무거나 사용하세요. 다만 파일 위치는 셸에서 접근하기 편한 곳이 좋습니다.
그다음 터미널에서 위 파일이 위치한 곳으로 이동한 다음 아래 커맨드를 입력합니다.
tic -x -o ~/.terminfo xterm-24bit.terminfo
이 명령이 실행되면 이제 xterm-24bit
라는 터미널 모드를 사용할 수 있습니다. 셸의 터미널 모드는 TERM
환경변수로 지정할 수 있으며 아래의 커맨드로 현재 셸의 터미널 타입을 바꿀 수 있습니다.
export TERM="xterm-24bit"
이후 emacs -nw
커맨드로 터미널에서 이맥스를 실행시켜서 확인해 봅시다. 참고로 -nw
옵션은 GUI용으로 빌드된 이맥스를 터미널에서도 기동시킬 수 있게 해주는 옵션입니다.
잘 동작 하나요?
필요하다면 위 TERM
환경 변수를 설정하는 코드를 ~/.zshrc
나 ~/.bashrc
와 같은 셸 초기화 스크립트에 넣어놓으면 편하게 쓸 수 있습니다.
다만 특정 터미널 도구에서 24bit 색상 모드는 문제가 발생하는 경우가 있습니다. 이럴 때는 트루 컬러를 사용할 소프트웨어에만 위 터미널 모드를 적용하도록 하는 방법이 있습니다. 예를 들어 일상적으로는 xterm-256color
등의 표준(?) 터미널을 사용하다가 emacs에서만 트루 컬러 모드를 적용하기 위해 아래와 같은 alias를 만들 수도 있습니다.
alias emacs="TERM=xterm-24bit /usr/local/bin/emacs -nw"
이렇게 하면 이 alias가 적용된 셸에서 emacs 커맨드는 항상 트루 컬러 모드로 동작하게 됩니다. 물론 emacs의 경로는 자신의 상황에 맞게 입력해야겠지요?
관련된 글들
터미널에서 Doom Emacs의 복사가 동작 안 하는 문제
터미널 환경이 원래 GUI랑은 조금 다르긴 해서 복사 및 붙이기(copy and paste) 환경이 호환이 안 되는 경우가 많다. macOS에서는 이 문제를 해결하기 위해서 pbcopy 나 pbpaste 같은 터미널 커맨드를 별도
seorenn.tistory.com
'기술적인 이야기 > 이맥스' 카테고리의 다른 글
파일 읽어서 내용 수정하고 저장하기 (Emacs Lisp) (0) | 2020.03.23 |
---|---|
Tmux에서 트루컬러 이맥스 사용하기 (0) | 2020.02.08 |
Org Mode 테이블 스프레드시트 (1) | 2020.01.31 |
Org Mode 문서에 외부 이미지 넣기 (0) | 2020.01.14 |
Org Publish가 이맥스를 자꾸 얼리고 있어요 (1) | 2020.01.10 |
댓글