Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

Tmux 스크롤 문제 해결 가이드: 터미널을 빠르게 탐색하는 전문가 팁

Tmux(Terminal multiplexer의 약자)는 리눅스 배포판, macOS 등 유닉스 기반 운영체제에서 사용할 수 있는 최고의 오픈소스 터미널/셸 멀티플렉서 중 하나입니다. Tmux를 사용하면 하나의 창에서 여러 터미널 세션에 동시에 접근할 수 있어, 여러 개의 명령줄 스크립트나 프로그램을 동시에 실행해야 할 때 매우 유용합니다.

하지만 여러 창이 동시에 작동하는 특성 때문에 일부 사용자는 터미널 창에서 위로 스크롤하기가 어려울 수 있습니다. 이는 키보드든 마우스든 마찬가지이며, 다양한 유닉스 기반 운영체제가 존재한다는 점이 문제를 더욱 복잡하게 만듭니다.

걱정하지 않으셔도 됩니다. 아래에서 소개하는 방법들을 따라 하면 Tmux에서도 손쉽게 스크롤할 수 있습니다.

Tmux 스크롤 모드 활성화 및 사용법

다음 단계를 따라 Tmux에서 위아래로 스크롤할 수 있습니다.

  1. Ctrl + B를 누른 후 [ 키를 누릅니다.
    Ctrl + B + [ 키 조합으로 Tmux의 스크롤 모드를 활성화할 수 있습니다.
  2. 이제 키보드의 일반 탐색 키(위/아래 화살표, Page Up, Page Down 등)를 사용하여 Tmux 인터페이스를 자유롭게 탐색합니다.

스크롤이 끝나면 Q 키를 눌러 스크롤 모드를 종료할 수 있습니다. 만약 기대한 대로 작동하지 않는다면, F7 키로 스크롤 모드에 진입하고 q 키로 종료하는 방식이 문제를 해결하는지 확인해 보세요.

복사 모드(Copy Mode) 활성화 및 사용법

  1. Ctrl + B를 누른 후 PgUp 키를 누릅니다.
  2. 그러면 터미널이 Tmux에서 한 페이지 위로 바로 이동하며, 원하는 결과가 나오는지 확인할 수 있습니다.

VI 모드 활용하기

Tmux가 연결된 클라이언트(Attached Client)에 의해 제어되는 상태를 VI 모드라고 합니다. VI 모드에서는 Shift + KShift + J 키를 사용하여 Tmux 인터페이스에서 한 줄씩 탐색할 수 있습니다(스크롤 모드에 있을 때). 스크롤 모드가 아니라면 해당 키를 눌러도 커서만 이동합니다. 또한 C-B 키를 두 번 연속 누르면 한 페이지 위로, C-F 키를 누르면 한 페이지 아래로 스크롤할 수 있습니다.

Tmux.Config 파일 편집하기

숙련된 사용자라면 위의 방법들이 만족스럽지 않을 수 있습니다. 이 경우 Tmux.config 파일을 직접 편집하면 문제를 해결할 수 있습니다. 터미널에서 vim ~/.tmux.config 명령어를 실행하여 설정 파일을 열 수 있습니다.

마우스 스크롤 활성화

  1. Tmux 버전에 맞게 다음 줄을 Tmux.config 파일에 추가합니다:
    # Tmux 2.1 이상 버전인 경우
    set -g mouse on
    
    # Tmux 2.1 미만 버전인 경우
    set -g mode-mouse on
  2. 이제 마우스 스크롤이 정상적으로 작동하는지 확인합니다.

이후에는 Q 키를 눌러 스크롤 모드를 종료할 수 있다는 점을 기억하세요. 또한 터미널 내용을 복사하려면 Shift + 마우스 왼쪽 클릭으로 복사 작업을 수행할 수 있습니다.

키 바인딩으로 마우스 스크롤 활성화

  1. 설정 파일에 다음 줄을 추가합니다:
    set -g mouse on
    # sane scrolling:
    bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
  2. 다음 명령어를 실행하여 Tmux 프로세스를 종료합니다:
    tmux kill-server && tmux
  3. Tmux를 다시 실행하고 스크롤이 기대대로 작동하는지 확인합니다.

Tmux의 마우스 모드에서 항목을 복사하려면 Shift 키와 마우스 왼쪽 클릭을 함께 사용해야 한다는 점을 잊지 마세요.

그래도 작동하지 않는다면, 다음 코드를 Tmux.config에 추가하여 문제가 해결되는지 확인해 보세요:

set -g mouse on
bind -n WheelUpPane {
    if -F '#{==:#{window_name},nvim}' {
        send-keys -M
    } {
        copy-mode -e
    }
}

기본 Xterm 스크롤 활성화

  1. 다음 줄을 Tmux.config 파일에 추가합니다:
    # Sane scrolling
    set -g terminal-overrides 'xterm*:smcup@:rmcup@'
  2. Tmux 스크롤이 만족스러운 수준으로 작동하는지 확인합니다.

여전히 작동하지 않는다면, 다음 내용을 Tmux 설정 파일에 추가했을 때 원하는 동작이 적용되는지 확인해 보세요(적용 후 시스템 재부팅이 필요할 수 있습니다):

# Allow xterm titles in the terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

단, 터미널 유형을 PuTTY로 변경했다면 위의 코드가 작동하지 않을 수 있습니다. PuTTY를 사용해야 하는 경우에는 대신 다음 내용을 Tmux 설정 파일에 추가하세요:

set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

그래도 문제가 해결되지 않는다면, 다음 내용을 설정 파일에 추가했을 때 해결되는지 확인해 보세요:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

macOS Mojave 이상 버전 사용자를 위한 방법

macOS X 이상이 설치된 맥에서는 Option + 위쪽 화살표로 위로 스크롤하고, Option + 아래쪽 화살표로 아래로 스크롤하기만 하면 됩니다.

이 방법이 작동하지 않는다면, 다음 키 조합으로 복사 모드(copy mode)에 진입하세요:

ctrl + b + [

진입 후에는 위/아래 화살표 키로 한 줄씩 스크롤할 수 있습니다. 한 페이지씩 위아래로 이동하려면 fn + 위쪽 화살표 또는 fn + 아래쪽 화살표 키를 사용하세요. 모드를 종료하려면 언제든지 q 키를 누르면 됩니다.

플러그인 활용하기

위의 어떤 방법으로도 기대한 결과를 얻지 못했다면, Tmux-Better-Mouse-Mode 같은 플러그인을 사용해 보세요. 이 플러그인은 Tmux의 마우스 지원을 크게 향상시켜 자연스러운 스크롤 환경을 제공하므로, 요구 사항을 충족하는 데 도움이 될 수 있습니다.

마무리

Tmux의 스크롤 문제는 다양한 원인으로 발생하지만, 위에서 소개한 방법들—스크롤 모드, 복사 모드, VI 모드, 설정 파일 편집, 플러그인 활용—중 하나는 분명 해결책이 되어줄 것입니다. 자신의 운영체제와 Tmux 버전에 맞는 방법을 선택해 적용해 보시길 권장합니다.