क्या 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"
$PWD
1.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 के पूछने के लिए बहुत ज्यादा है :)