글로벌, 서버, 세션 및 창 옵션의 차이점


19

tmux 매뉴얼은 다양한 유형의 옵션 (예 : 전역 옵션 , 서버 옵션 등)에 대해 설명합니다. 질문 기본 TMUX 구성 파일입니까? 또한 이러한 유형의 구성 중 일부를 나타냅니다.

이러한 유형 중 일부는 이해하기 쉽습니다. 창 옵션은 단일 창에만 관련된 사항을 처리합니다. 예를 들어 "allow-rename": 창에는 이름이 있고 세션에는 없습니다. 그러나 다른 유형의 경우 구별이 명확하지 않습니다.

차이점은 무엇입니까

  • 서버 옵션 ( set-option -s),
  • 글로벌 세션 옵션 ( set-option -g),
  • 세션 옵션 ( set-option),
  • 글로벌 창 옵션 ( set-window-option -g),
  • 창 옵션 ( set-window-option)?

또한 이러한 유형의 상속 규칙은 무엇입니까?

답변:


30

서버, 세션 및 창이라는 세 가지 옵션 클래스가 있습니다. 이 클래스는 배타적입니다. 각 옵션은 클래스 중 하나에 만 속합니다. 옵션 클래스 사이에는 상속이 없습니다.

하나의 서버 옵션 레벨 만 있으므로 상속이 없습니다 ( -L또는 -S명령 행 플래그를 사용하여 여러 개의 독립적 인 서버를 가질 수 있음 ).

세션 및 창 옵션은 각각 2 단계 계층 구조를 사용합니다. 전역 세션 (창) 옵션은 설정되지 않은 세션 (창) 옵션에 대한 기본값을 제공합니다. 세션 및 창 옵션은 모두 초기에 설정 해제되어 있으므로 새 세션 / 창은 글로벌 세션 / 창 옵션 값을 자동으로 사용합니다.

세션 옵션이 설정되면 ( set-option), 새로 설정된 값이 해당 세션의 전역 값보다 우선합니다. 전역 값 사용으로 돌아가려면 옵션 ( set-option -u)을 설정 해제하십시오 . 글로벌 세션 옵션 값을 변경하면 해당 옵션이 현재 설정되어 있지 않은 모든 세션에 영향을 미칩니다. 창 옵션을 설정하는 것을 제외하고는 동일한 옵션이 창 옵션에 적용됩니다 (개별 세션 대신 개별 창의 값을 대체 함).


예를 들어, base-index특정 세션에 대한 세션 옵션 의 유효 값을 찾으려면 다음을 수행하십시오 .

  • 세션 base-index옵션을 확인하십시오 (예 : tmux -t «target-session» show-options base-index* 에서 얻은 것 ).
    1. 세션에 base-index값 이 있으면 사용하십시오.
    2. 세션 값이 설정되지 않은 경우 전역 값 (예 :)을 사용하십시오 tmux show-options -g base-index.

마찬가지로, mode-keys특정 창의 창 옵션에 대한 유효 값을 찾으려면 다음을 수행하십시오 .

  • 창의 mode-keys옵션 (즉, tmux -t «target-window» show-options -w mode-keys** 에서 얻는 것 )을 확인하십시오.
    1. 창에 mode-keys값 이 있으면 사용하십시오.
    2. 창의 값이 설정되지 않은 경우 전역 값 (예 :에서 얻은 값)을 사용하십시오 tmux show-options -gw mode-keys.

* 이전 버전의 tmux 는에 대한 옵션 이름 인수를 허용하지 않습니다 show-options. 해당 버전을 사용하면 같은 것을해야 할 것 GREP을 그것을 : tmux -t target show-options | grep '^base-index '.
** tmux show-window-options base-index당신이 더 좋아한다면 이것은와 동일합니다. 전역 창 옵션에 대한 관련 명령은 tmux show-window-options -g base-index입니다.


다이어그램은 다음과 같습니다.

                 .---------------.
                ( server options  )
                 `---------------'

===========================================================

              .----------------------.
             ( global session options )    base-index 1
              `---------+--+---------'     visual-bell on
                     --/    \--
                  --/          \--
           +-----/-----+    +-----\-----+
           | session X |    | session Y |
           +-----------+    +-----------+
           base-index 0     visual-bell off

  effective values for X:
      base-index 0     (set)
      visual-bell on   (global)

  effective values for Y:
      base-index 1     (global)
      visual-bell off  (set)

===========================================================

              .---------------------.
             ( global window options )    pane-base-index 1
              `---------+++---------'     mode-keys emacs
                    ---/ | \---
                 --/     |     \---
             ---/        |         \---
         ---/            |             \---
+-------/----+    +------+-----+    +------\-----+
| window X.0 |    | window X.1 |    | window Y.0 |
+------------+    +------------+    +------------+
pane-base-index 0                   mode-keys vi
mode-keys vi

  effective values for X.0:
      pane-base-index 0   (set)
      mode-keys vi        (set)

  effective values for X.1:
      pane-base-index 1   (global)
      mode-keys emacs     (global)

  effective values for Y.0:
      pane-base-index 1   (global)
      mode-keys vi        (set)

글로벌 옵션에서 서버 옵션을 구별하려면 : 서버 옵션은 세션 또는 창 옵션에 적용되지 않는 옵션입니다. 로 표시 할 수있는 서버 옵션은 몇 가지뿐입니다 show -s. 그러나 사용 관점에서는 서버 옵션이 필요하지 않습니다. IMHO.
Bohr

1
UX를 ​​단순화하기 위해 서버 옵션을 지정 -g하고 제거 할 수 있기를 바랍니다 -s. 옵션이 서버 옵션이라는 것을 알면 아무런 이점이 없습니다.
Bohr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.