OS에 조건부 tmux 구성


답변:


51

다음 if-shell명령을 사용하십시오 .

if-shell "uname | grep -q Darwin" "tmux-cmd1; tmux-cmd2;" "tmux-cmd3; tmux-cmd4"

OS 별 명령을 별도의 파일에 넣고 "source-file"명령을 통해 실행할 수 있습니다.

if-shell "uname | grep -q Darwin" "source-file .tmux-macosx" "source-file .tmux-linux"

8
if-shellrun-shell TMUX 명령은 (현재의 현재 비동기 TMUX 1.7); 이들은 쉘 명령을 백그라운드에서 효과적으로 실행하며, 실행되는 모든 tmux 명령 은 or 명령 자체 뒤에 오는 명령 ( tmux 는 단일 스레드) 후에 만 실행됩니다 . 효과적으로 또는 에서 를 사용하는 경우 초기 세션 ( 및를 통해 명시 적으로 생성 된 모든 세션, 창 또는 창 )에는 tmux 구성 또는 명령이 없습니다. if-shellrun-shellif-shellrun-shell~/.tmux.conf~/tmux.confif-shellrun-shell
Chris Johnsen

1
@ChrisJohnsen if-shell은 tmux 1.8에서 예상대로 작동합니다. SSH에 대해서만 set-titles-string을 설정하는 데 사용하고 있습니다 : github.com/blueyed/dotfiles/commit/…
blueyed

2
이것은 받아 들여 져야한다. 그것을하는 올바른 방법입니다.
Chev

11

Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 에 답이 있습니다. 또한 Chris Johnsen은 GitHub 문제를 겪고있는 사람들을 돕기 위해 많은 크레딧을받을 자격이 있습니다 : https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987

기본적으로 safe-reattach-to-user-namespace실제 reattach ... 명령이 있는지 검사 하는 쉘 스크립트를 설정합니다 .

#! /usr/bin/env bash

# If reattach-to-user-namespace is not available, just run the command.
if [ -n "$(command -v reattach-to-user-namespace)" ]; then
  reattach-to-user-namespace $@
else
  exec "$@"
fi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.