저는 오랫동안 Screen을 많이 사용했지만 2002 년에 다시 수정 한 버전을 사용합니다. 주로 "다음 / 이전"탐색 순서를 새 순서와 일치 시키려고했기 때문에 창은 i3 또는 Ion 과 같은 타일링 창 관리자와 유사하게 작성되었습니다 . 표준 화면 동작은 '다음'과 '이전'이 창 번호로 이동하는 것이므로 일반적으로 '새'창 (사용 가능한 가장 작은 수를 잡음)은 '다음'창 이외의 위치에 있습니다. 숫자를 기억하지 마십시오. 내가 선호하는 동작은 2010 년에 새 창 명령에 대한 플래그 및 2012 년에 renumber-windows 옵션으로 Tmux에서 구현되었습니다.. 설명서 추가 등을 포함하여 가능한 한 허용하려고하는 내 화면 패치는 2002 년 7 월 화면 목록에 대한 토론을 생성하지 않았습니다 ( "screen@informatik.uni-erlangen.de"는 보관소 찾기). 사실 1 년 후 다시 보냈 는데도 인정되지 않았습니다.
2002 년 이후로 나는 패치를 몇 번 "재기 반화하여"새로운 버전의 Screen에 적용했다. 그러나 4.3 버전 (2015)에 도달했을 때 나는 문서 사용이 화면의 사용 중 하나를 깨뜨린 즉, 'stuff'가 이제 환경 변수를 보간 하는 문서화되지 않은 변경을 발견했습니다 . 나는 그 기능이 필요하지 않았고 '물건'에 대한 논쟁을 쉽게 피할 수있는 방법을 알 수 없었기 때문에 (달러 기호가 포함 된 텍스트를 보낼 수 있도록) 2004 년부터 4.0 버전을 계속 사용했습니다.
현재 Emacs 영역의 내용을 특정 창 번호로 보내는 Emacs 기능에서 Screen의 'stuff'(Tmux의 'send-keys')를 사용합니다. 그렇게하면 스크립트 언어로 코드를 작성할 때 인터프리터를 열고 인터프리터 창에 특수 번호를 부여 한 다음이 Emacs 바인딩을 사용하여 편집기 창에서 인터프리터 창으로 직접 코드 줄을 보낼 수 있습니다. 해 키지 만 표준 키 입력을 사용하여 화면 창에서 인터프리터와 상호 작용할 수 있기 때문에 순수한 Emacs 솔루션 보다 낫습니다 . GUI IDE와 비슷하지만 마우스를 사용하거나 깜박이는 커서를 쳐다볼 필요는 없습니다.
패치에서 구현 한 또 다른 기능은 창을 "표시"하고 표시된 창을 현재 창 다음에 "다음"으로 위치를 바꾸는 기능입니다. 나에게 이것은 번호를 다시 매기는 것보다 훨씬 더 자연스럽게 창을 재정렬하는 방법입니다. 복사 / 붙여 넣기 패러다임 또는 "끌어다 놓기"와 같습니다. ( 최근에 i3 에서도이 작업을 수행하는 방법을 알아 냈습니다 .)
Tmux에서 동일한 작업을 수행 할 수 있어야합니다. 예를 들어 2015 년과 같이 창을 "표시"하는 기능이 있습니다. 또는 상태 기반 쉘 스크립트로보다 기본적인 솔루션을 해결할 수 있습니다. "표시된 창"방법을 시도하기 위해 짧은 스크립트와 키 바인딩을 구현했으며 몇 번 작동했지만 Tmux가 "[lost server]"와 충돌했습니다. 그런 다음 복잡한 작업을 수행하지 않아도 Tmux가 충돌하는 것을 발견했습니다. 분명히 그것은 일부 사용자 충돌되었습니다 위한 최소한 몇 년 . 때때로 서버가 충돌하고 때로는 CPU의 100 %를 사용하기 시작하고 응답하지 않게됩니다. Screen이 이들 중 하나를 수행하는 것을 본 적이 없습니다.
이론적으로 Tmux는 여러 가지면에서 Screen보다 우수합니다. 스크립트 기능이 훨씬 뛰어나므로 현재 세션의 창 목록을 명령 줄에서 쿼리하는 것과 같은 작업을 수행 할 수 있습니다. 스크린에서는 불가능합니다. 예를 들어 2015 년 화면 에는 "제목별로 창 정렬"명령이 추가되었습니다 . 이러한 특수 명령이 언제 유용한 지 잘 모르겠지만, 이것과보다 실용적인 변형 (예 : CPU 사용에 따른 정렬 창)은 Tmux의 쉘 스크립트에서 비교적 쉽게 수행 할 수 있습니다. 나에게는 적어도 C 코드를 수정하지 않고 Screen에서 창의적인 작업을 수행하는 것이 어려워 보일 것입니다.
다른 포스터에서 언급했듯이 Tmux에는 단일 서버 모델이 있는데 특히 서버가 충돌하는 경우 주요 단점으로 간주됩니다. 각 "세션"에 대해 별도의 소켓을 지정하여이 문제를 해결할 수 있습니다. 여전히 Screen의 세션 당 서버 기본값을 선호합니다.
2002 년에 스크린 코드 작업은 교육적이고 즐거웠습니다. 이상하게도, 모든 추가 기능에 대해 Tmux는 Screen (30k 대 40k)보다 약 25 % 적은 코드 라인을 가지고 있습니다. Tmux는 많은 트리 및 목록 데이터 구조를 사용한다는 것을 알았습니다. 화면이 배열을 선호하는 것 같습니다.
알다시피, Unix 터미널 인터페이스는 매우 안정적이므로 기본 운영 체제의 변경 사항에 적응하기 위해 Screen 또는 Tmux 코드가 거의 필요하지 않습니다. 이러한 프로그램에는 실제로 웹 브라우저 나 웹 서버 또는 셸과 같은 보안 업데이트가 없습니다. 2004 년에 마지막으로 업데이트 된 사용자 정의 버전의 Screen을 실행하는 데 아무런 문제가 없었습니다 ( Systemd가 소켓을 삭제하지 못하도록 일부 구성 파일을 추가해야하는 경우 제외); 이러한 파일은 일반적으로 배포 패키지의 일부입니다). 아마도 충돌을 시작하기 전에 Tmux 버전을 실행하여 Tmux에서 발생한 문제를 해결할 수 있습니다. 물론 충분한 사용자가이 작업을하면 신규 사용자에게는 좋지 않을 것입니다. 왜냐하면이 프로그램의 최신 공식 버전에서 버그를 찾는 전문가는 더 적기 때문입니다. 그러나 불안정한 제품 (최신 Tmux) 또는 내가 원하는 특정 기능이없는 제품 (표준 화면)으로 전환하는 것은 동기 부여가 어렵습니다.
이것이 OP의 질문에 대한 쉬운 대답을 제공하지는 않지만 내 관점이 유용하기를 바랍니다.