वर्तमान में कुंजी के बाइंडिंग को उसके डिफ़ॉल्ट पर रीसेट करने का कोई सीधा तरीका नहीं है; डिफ़ॉल्ट बाइंडिंग (इन key_bindings_init()
) की आरंभीकरण एक बार तब किया जाता है जब tmux सर्वर पहली बार (में server_start()
) शुरू होता है , और एक कुंजी को रीसेट करने के लिए कोई तंत्र नहीं होता है।
अपने वांछित परिदृश्य जहाँ आप अपने विन्यास फाइल सोर्सिंग एक डिफ़ॉल्ट रूप से बाध्यकारी है कि पहले एक कस्टम बाध्यकारी है कि के बाद से अपने विन्यास फाइल से हटा दिया गया है द्वारा ओवरराइड होने के पैर जमाने के के कार्य लिए, विधि आप तैयार उचित है (हालांकि दुर्भाग्य से शब्द): unbind-key -a
, फिर सभी "डिफ़ॉल्ट" बाइंडिंग को फिर से स्थापित करें, फिर अपने कस्टम बाइंडिंग स्थापित करें (जिनमें से कुछ "डिफ़ॉल्ट" बाइंडिंग को ओवरराइड कर सकते हैं)।
एक सर्वर के वर्तमान बाइंडिंग को list-keys
कमांड * के साथ निकाला जा सकता है ; यह आपकी प्रस्तावित .tmux.reset.conf
फ़ाइल को उत्पन्न / बनाए रखने में मदद कर सकता है , लेकिन आपको डिफ़ॉल्ट बाइंडिंग को निकालने का एक तरीका चाहिए , न कि वर्तमान बाइंडिंग।
* कुछ ऐसी स्थितियाँ हैं, जिनका उत्पादन list-keys
वर्तमान में सीधे प्रयोग करने योग्य नहीं है: अर्धविराम के लिए बाध्य होने के कारण अर्धविराम की आवश्यकता होती है, ताकि इसे टक्सू कमांड विभाजक के रूप में व्याख्या करने से रोका जा सके , और ऐसे तर्क जो एकल के भीतर दोहरे उद्धरणों का उपयोग करते हैं उद्धरण (डिफ़ॉल्ट बाइंडिंग में से कोई भी ऐसा नहीं है) दोहरे qoutes के अंदर दोहरे उद्धरणों के रूप में सामने आएगा ।
डिफ़ॉल्ट बाइंडिंग प्राप्त करने के लिए आपको न्यूनतम कॉन्फ़िगरेशन (यानी कोई कस्टम बाइंडिंग) के साथ एक अस्थायी सर्वर की आवश्यकता होती है ताकि आप इसके list-keys
आउटपुट को कैप्चर कर सकें । आपके द्वारा चलाए जा रहे tmux सर्वर की संख्या की कोई सीमा नहीं है , लेकिन प्रत्येक को एक अलग सॉकेट पाथनाम का उपयोग करना चाहिए; -L
और -S
tmux विकल्पों सॉकेट नाम (में निर्दिष्ट करने के लिए इस्तेमाल किया जा सकता $TMPDIR/tmux-$UID
है (या शुरू करने या पूर्ण सॉकेट पथ नाम तो, करने के लिए बात करने के लिए) एक सॉकेट पर एक नए सर्वर नाम दिया है। temp
आप इस का प्रयोग करेंगे:
tmux -L temp …
यह सुनिश्चित करने के लिए कि यह आपका उपयोग नहीं करता है .tmux.conf
, आप -f
इसे पढ़ने के लिए बताने के लिए उपयोग करते हैं /dev/null
(एक विशेष फ़ाइल जो हमेशा खाली होती है):
tmux -f /dev/null -L temp …
नोट : यह प्रसंस्करण को रोकता नहीं है /etc/tmux.conf
, अगर ऐसी कोई फ़ाइल मौजूद है; इस "सिस्टम कॉन्फ़िगरेशन फ़ाइल" का पथ हार्ड-कोडेड है और इसे बायपास करने का कोई विकल्प नहीं है (कोड को पैच करना)।
आम तौर पर, आपको new-session
वास्तव में सर्वर को शुरू करने के लिए एक कमांड की आवश्यकता होती है , लेकिन हमें कोई सत्र नहीं चाहिए, बस एक प्रारंभिक सर्वर को क्वेरी करना चाहिए। start-server
आदेश करता है सिर्फ इतना है कि: किसी भी सत्र बनाने के बिना एक सर्वर शुरू होता है।
tmux -f /dev/null -L temp start-server …
अब, हमें बस अपनी "क्वेरी" कमांड ( list-keys
इस मामले में) को संलग्न करने की आवश्यकता है :
tmux -f /dev/null -L temp start-server \; list-keys
ध्यान दें : शेल को शेल कमांड सेपरेटर के रूप में ट्रीट करने से रोकने के लिए सेमीकॉलन को भाग जाने या उद्धृत करने की आवश्यकता है क्योंकि हम चाहते हैं कि यह एक टक्सू कमांड सेपरेटर हो।
चूंकि बनाए रखने के लिए कोई सत्र नहीं हैं, list-keys
कमांड खत्म होने के बाद सर्वर स्वचालित रूप से बाहर निकल जाएगा ।
इसलिए, आप इस तरह से एक कमांड का उपयोग कर सकते हैं ताकि आप .tmux.reset.conf
अपने .tmux.conf
फ़ाइल को अस्थायी रूप से हटाने के बारे में चिंता किए बिना (बस आपको डिफ़ॉल्ट बाइंडिंग देख सकें) और किसी भी मौजूदा सर्वर को बंद किए बिना।
यदि run-shell
कमांड सिंक्रोनस था, तो आप अपनी कॉन्फ़िगरेशन फ़ाइल में इस तरह की कॉल को एम्बेड कर सकते हैं (एक अस्थायी फ़ाइल पर कब्जा करना जो तब आप के साथ प्रक्रिया करेंगे source-file
) एक स्थैतिक फ़ाइल (आपके .tmux.reset.conf
) होने के बजाय । यह आपको हमेशा tmux के अपने वर्तमान संस्करण से डिफ़ॉल्ट बाइंडिंग का उपयोग करने देगा (डिफ़ॉल्ट बाइंडिंग कभी-कभी बदल जाती है)। काश, run-shell
कमांड का पूरा होना वर्तमान में बाद के आदेशों के संबंध में अतुल्यकालिक है (कमांड के बाद आने वाली run-shell
कमांड आमतौर पर प्रक्रिया से पहले चलेगी जिसके द्वारा run-shell
समाप्त करने का मौका मिला है)।