tmux OS के लिए विन्यास की स्थिति


35

मेरे tmux.conf की कुछ पंक्तियाँ हैं जिन्हें मैं केवल तभी निष्पादित करना चाहूँगा जब मेरा OS Mac होगा। हालाँकि, मैं अपने tmux.conf का उपयोग कई अलग-अलग OS पर करना चाहूँगा। मैं ओएस पर एक कमांड सशर्त कैसे बना सकता हूं, जिस पर वर्तमान में चल रहा है?


जवाबों:


45

उपयोग if-shell आदेश:

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

आप ओएस-विशिष्ट कमांड को अलग-अलग फाइलों में डालना चाहते हैं, और उन्हें "स्रोत-फाइल" कमांड के माध्यम से निष्पादित कर सकते हैं।

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

7
if-shell तथा run-shell tmux वर्तमान में आदेश अतुल्यकालिक (के रूप में) हैं tmux 1.7); वे पृष्ठभूमि में अपने शेल कमांड को प्रभावी ढंग से चलाते हैं, और कोई भी tmux आदेश जो वे चलाते हैं, केवल निष्पादित किए जाएंगे बाद के बाद आने वाली कोई भी आज्ञा if-shell या run-shell कमान खुद ( tmux सिंगल-थ्रेडेड है)। प्रभावी रूप से, यदि आप उपयोग करते हैं if-shell या run-shell में ~/.tmux.confप्रारंभिक सत्र (और किसी भी सत्र, खिड़कियां, या पैन के माध्यम से स्पष्ट रूप से बनाया गया ~/tmux.conf ) में कोई कमी होगी tmux विन्यास के माध्यम से व्यवस्था की if-shell या run-shell आदेश देता है।
Chris Johnsen

@ChrisJohnsen if-shell 1.8 tmux के साथ मेरे लिए उम्मीद के मुताबिक काम करता है। मैं इसे केवल SSH के लिए सेट-टाइटल-स्ट्रिंग सेट करने के लिए उपयोग कर रहा हूं: github.com/blueyed/dotfiles/commit/...
blueyed

1
इसे स्वीकार किया जाना चाहिए; यह इसे करने का उचित तरीका है।
Chev

11

Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 जवाब है। इसके अलावा क्रिस जॉन्सन 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.