क्या new-windowमैं वर्तमान में हूं, इसके लिए काम करने वाली डायरेक्टरी सेट के साथ खोलना संभव है । अगर यह मायने रखता है तो मैं zsh का उपयोग कर रहा हूं ।
क्या new-windowमैं वर्तमान में हूं, इसके लिए काम करने वाली डायरेक्टरी सेट के साथ खोलना संभव है । अगर यह मायने रखता है तो मैं zsh का उपयोग कर रहा हूं ।
जवाबों:
Tmux 1.9 में शुरू करने से default-pathविकल्प हटा दिया गया था, इसलिए आपको -cविकल्प का उपयोग करने की आवश्यकता है new-window, और split-window(जैसे c, रिबंडिंग "और %शामिल करने के लिए बाइंडिंग द्वारा
-c '#{pane_current_path}')। विवरण के लिए इस प्रश्न के कुछ अन्य उत्तर देखें।
एक प्रासंगिक सुविधा फरवरी 2012 की शुरुआत में tmux SVN ट्रंक में उतरी । tmux में यह कोड शामिल है, tmux कुंजी बाइंडिंग जो आह्वान करती है new-window, वर्तमान फलक की सक्रिय प्रक्रियाओं ( default-pathसत्र के रूप में लंबे समय तक) एक ही वर्तमान कार्यशील निर्देशिका के साथ एक विंडो बनाएगी। विकल्प खाली है; यह डिफ़ॉल्ट रूप से है)। split-windowजब यह बाध्यकारी द्वारा लागू किया जाता है तो कमांड द्वारा बनाए गए फलक के लिए भी यही सही है ।
यह विशेष प्लेटफ़ॉर्म-विशिष्ट कोड का उपयोग करता है, इसलिए इस समय केवल कुछ OS समर्थित हैं: डार्विन (OS X), FreeBSD, Linux, OpenBSD और Solaris।
यह tmux (1.7?) की अगली रिलीज़ में उपलब्ध होना चाहिए ।
1.4 tmux के साथ , मैं आमतौर पर सिर्फ उपयोग करता हूं
tmux neww
एक शेल में जो पहले से ही वर्तमान कार्यशील निर्देशिका है।
यदि, हालांकि, मैं एक ही वर्तमान कार्यशील निर्देशिका के साथ कई विंडो बनाने की आवश्यकता का अनुमान लगाता हूं (या मैं उन्हें सामान्य <उपसर्ग> cकुंजी बंधन) के साथ शुरू करने में सक्षम होना चाहता हूं , तो मैं default-pathसत्र विकल्प के माध्यम से सेट करता हूं
tmux set-option default-path "$PWD"
एक ऐसे शेल में, जिसमें पहले से ही वांछित कार्यशील निर्देशिका है (हालांकि आप स्पष्ट रूप से इसे किसी भी निर्देशिका से कर सकते हैं और इसके बजाय केवल मूल्य निर्दिष्ट कर सकते हैं)।
यदि default-pathइसे एक गैर-खाली मान पर सेट किया जाता है, तो इसके मूल्य का उपयोग कमांड-लाइन चालान के वर्तमान कार्यशील निर्देशिका "विरासत" के बजाय किया जाएगा tmux neww।
Tmux पूछे जाने वाले प्रश्न शीर्षक प्रविष्टि मौजूद होती है कि एक और दृष्टिकोण का वर्णन करता है "मैं वर्तमान विंडो उसी निर्देशिका में एक नई विंडो कैसे खोल सकता हूँ?"; हालांकि यह थोड़ा जटिल है।
/proc/PID/cwdलिनक्स पर) संभव है)। वहाँ में एक संभव आंशिक समाधान है एक प्रवेश की tmux पूछे जाने वाले प्रश्न (यह, खोल रिकॉर्ड अपने CWD जब यह एक त्वरित प्रिंट है तो एक महत्वपूर्ण यह है कि दर्ज की गई निर्देशिका में एक नया खोल शुरू होता है बांधता है)।
default-pathसत्र विकल्प के मान (यदि वह सेट है) का उपयोग करता है। Tmux पूछे जाने वाले प्रश्न एक प्रविष्टि है कि एक महत्वपूर्ण यह है कि वर्तमान विंडो में खोल चलने के CWD साथ एक नई विंडो शुरू होता है बाध्य करने के लिए एक तरह से वर्णन करता है ( "मैं वर्तमान विंडो उसी निर्देशिका में एक नई विंडो खोल सकते हैं?") , लेकिन विधि काफी जटिल है। वही शायद ( split-windowऔर ) के new-sessionबजाय किया जा सकता है neww।
वर्तमान (1.9a) Tmux मैन पेज -c start-directoryकुछ कमांड्स सहित, new-windowऔर के लिए एक वैकल्पिक पैरामीटर को सूचीबद्ध करता है split-window। इसमें प्रारूप चर भी शामिल है pane_current_path, जो इसे संदर्भित करता है
Current path if available।
इन्हें मिलाकर, हम मौजूदा वर्किंग डायरेक्टरी के साथ एक नई विंडो खोल सकते
new-window -c "#{pane_current_path}"
हैं, यदि मौजूदा पथ में रिक्त स्थान है तो उद्धरण का उपयोग करने की आवश्यकता है।
यदि आप
split-window -c "#{pane_current_path}"
एक क्षैतिज विभाजन के लिए , वर्तमान फलक को लंबवत रूप से विभाजित करना चाहते हैं, या, का उपयोग करना चाहते हैं
split-window -h -c "#{pane_current_path}"
डिफ़ॉल्ट रूप से वर्तमान बाइंडिंग निर्देशिका के साथ कुंजी बाइंडिंग को नए विभाजन और खिड़कियां खोलने के लिए, अपने को निम्नलिखित जोड़ें .tmux.conf। "आसपास के उद्धरण के साथ Tmux बताने के लिए यह एक स्ट्रिंग शुरू नहीं करना चाहिए बल्कि बाध्य है "कुंजी।
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
prefix- :, फिर टाइप करेंsource ~/.tmux.conf
tmux source-file .tmux.conf।
हाँ, उपयोग करें new-window -c "#{pane_current_path}"। आप ~/.tmux.confइसे लगातार बनाने के लिए निम्नलिखित जोड़ सकते हैं (डिफ़ॉल्ट कीबाइंडिंग को मानते हुए):
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
default-pathपथ की स्थापना की गई थी हटाया या तो का उपयोग कर नदी के ऊपर कोड और tmux लेखक कि प्रतिबद्ध संदेश में सिफारिश से -c "#{pane_current_path}"या -c "$PWDमें new-windowऔर split-windowआदेशों।
मैंने भी इस दोहरे प्रश्न का उत्तर दिया ।
Tmux के हाल के संस्करणों के साथ (v1.8, लेकिन शायद v1.7 में भी):
tmux new-window -c "$PWD"
tmux split-window -v -c "$PWD"
$PWD1.9m में मेरे लिए काम करने के लिए प्रकट नहीं होता है। मुझे pane_current_pathऊपर बताए अनुसार उपयोग करना था ।
दूसरे जवाब मेरे लिए काम नहीं करते हैं जब मैं उन्हें बांधने की कोशिश करता हूं (विशेष रूप से tmux split-window -c)। लेकिन मैंने अपना स्वयं का समाधान बनाया है जिसे मैं एक वर्ष से अधिक समय से उपयोग कर रहा हूं जो नई-खिड़की और विभाजन दोनों के लिए काम करता है:
~/.bashrc:
PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'
~/.tmux.conf:
unbind-key c
bind-key c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key C new-window
bind-key - run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key | run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"
काम करता है, कम से कम, $ (tmux -V) 1.8 के साथ। पुराने tmuxes के लिए काम कर रहे एक संस्करण के लिए यहां से बाहर की टिप्पणी वाली लाइनें देखें, जिनके पास शो-पर्यावरण कमांड नहीं है।
tmux ने संस्करण 1.8 में लेकिन 1.9 में इस सुविधा को -cध्वज के उपयोग के पक्ष में हटा दिया था ।
इसे हल किया जा सकता है लेकिन पुन: बाध्यकारी new-windowलेकिन यदि आप कुछ और चलाना चाहते हैं तो यह बहुत ही चिंताजनक है: टाइप करने के बजाय neww man tmuxआपको टाइप करना होगा neww -c "#{pane_current_path}" man tmuxजो आप शायद नहीं करना चाहते हैं।
Tmux का एक मोड है (मैं लेखक हूं) एलियासेस का उपयोग करने की अनुमति देने के लिए tmux में एक उचित स्क्रिप्टिंग भाषा जोड़ने के लिए, 'मोड', चर, लूप, आदि में कई कमांड्स बांधने ... और साथ ही, यह उस व्यवहार को वापस लाता है। : वर्तमान निर्देशिका में नई खिड़कियां और पैन खोले गए हैं।
इसे यहाँ स्रोतों से बनाया जा सकता है: http://ershov.github.io/tmux/
<prefix>cअंतर्निहित शेल उदाहरण (यदि कोई हो) की कार्यशील निर्देशिका को पढ़ने के लिए मैप कर सकता हूं औरdefault-pathनिष्पादन से पहले सेट कर सकता हूंnew-window। या कि tmux के पूछने के लिए बहुत ज्यादा है :)