alacritty 구성을 사용하여 tmux를 통해 nvim을 실행할 때 색상이 다릅니다.

alacritty 구성을 사용하여 tmux를 통해 nvim을 실행할 때 색상이 다릅니다.

배경: Arcolinux 설치를 설정하고 있습니다. 민첩성을 시작하려면 키보드 단축키 SUPER+Enter가 있습니다.

내가 원하는 것은 alacritty가 새 tmux 세션을 자동으로 생성하고 시작하도록 하는 것입니다(아직 연결된 세션이 없는 경우). 또는 아무것도 추가되지 않은 경우 기존 tmux 세션에 추가됩니다.

alacritty.yml에 다음을 추가하여 이를 달성했습니다.

shell:
  program: /usr/bin/bash
  args: 
    - -l
    - -c
    - "tmux ls | grep -v attached && tmux attach || tmux"

이 모든 것은 내가 원하는 방식으로 정확하게 작동합니다. 한 가지를 제외하고는 이 접근 방식을 사용할 때 nvim의 색상이 엉망이 됩니다(더 어둡기 때문에 시각적 모드는 배경과 동일한 강조 색상을 갖습니다. 짜증납니다).

몇 가지 관련 질문을 발견하고 해결책을 시도했습니다. 예를 들어, 내 tmux 구성에는 다음이 있습니다(및 2개의 라이너를 포함한 다른 변형).

set -ag terminal-overrides ",xterm-256color:RGB"

TERM 변수가 로 설정되어 있는지 확인했고 xterm-256colornvim에서 배경을 "어두움"으로 설정해 보았습니다.

위 구성을 사용하여 alacritty에 연결된 tmux 세션에서 nvim을 시작할 때 이 중 어느 것도 도움이 되지 않는 것 같습니다.

그러나 alacritty 구성을 제거하고 명령을 실행하여 tmux에 수동으로 연결하면 모든 것이 제대로 작동하고 nvim이 예상대로 보입니다.

/usr/bin/bash -l -c "tmux ls | grep -v attached && tmux attach || tmux"

alacritty 구성에서 시작할 때 왜 다른 결과가 나오는지 알 수 있습니다.

참고로, 제가 이 작업을 하는 이유 중 하나는 SUPER+Enter에 대한 바인딩 설정이 어디에 있는지 모르고 어떤 구성 파일이나 설정에서도 찾을 수 없기 때문입니다(추적하는 더 좋은 방법이 있습니까). 그래서 이것이 또한 유용할 것이라고 생각했습니다.

답변1

이것이 다른 사람들에게 도움이 되기를 바랍니다:

문제를 해결했지만 여전히 약간 혼란스럽습니다. nvim에서 실행하면 :checkhealthTERM 변수에 문제가 있음이 확인됩니다. TERM이 tmux-256color다음과 같은 경고 로 설정되어 있는 것으로 보고되었습니다 .

경고 Tc와 RGB 기능이 모두 설정되지 않았습니다. 트루 컬러가 비활성화되었습니다. |'termguicolors'|가 제대로 작동하지 않습니다.

혼란스러운 부분은 용어를 신속하게 설정할 수 있다는 것입니다. 그러나 문서에는 다음과 같이 나와 있습니다.

# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.

실행했을 때 echo $TERM반환되어 xterm-256color그대로 두었지만 해결 방법은 alacritty 구성에서 TERM을 다음과 같이 명시적으로 설정하는 것이었습니다 xterm-256color.

env:
  TERM: "xterm-256color"

이 항목도 tmux 구성에 설정해야 합니다(하지만 이미 설정되어 있습니다).

set -ag terminal-overrides ",xterm-256color:RGB"

관련 정보