जवाबों:
tmux
वर्तमान विंडो के लिए इतिहास बफर में खोज करने के लिए, प्रेस Ctrl- b [दर्ज करने के लिए copy mode
।
यदि आप emacs कुंजी बाइंडिंग (डिफ़ॉल्ट) का उपयोग कर रहे हैं, तो दबाएं Ctrl- sफिर खोजने के लिए स्ट्रिंग टाइप करें और दबाएं Enter। nउसी स्ट्रिंग को फिर से खोजने के लिए दबाएँ । प्रेस Shift- nरिवर्स खोज के लिए। Escapeबाहर निकलने के लिए दो बार दबाएँ copy mode
। आप उपयोग कर सकते हैं Ctrl- rरिवर्स दिशा में खोज करने के लिए। ध्यान दें कि चूंकि tmux
कीबोर्ड में नियंत्रण है copy mode
, Ctrl- सेटिंग sकी परवाह किए बिना काम करता है stty ixon
(जो मुझे stty -ixon
बैश में आगे की खोजों को सक्षम करने के लिए पसंद है )।
यदि आप vi कुंजी बाइंडिंग ( Ctrl- b:set-window-option -g mode-keys vi
) का उपयोग कर रहे हैं , /तो दबाएँ और खोज करने के लिए स्ट्रिंग टाइप करें Enter। nउसी स्ट्रिंग को फिर से खोजने के लिए दबाएँ । प्रेस Shift- nएमएसीएस मोड में रिवर्स खोज के लिए। qबाहर निकलने के लिए दो बार दबाएँ copy mode
। आप ?रिवर्स दिशा में खोज करने के लिए उपयोग कर सकते हैं ।
यदि आप इसमें प्रदर्शित कुछ के आधार पर एक विंडो पर स्विच करना चाहते हैं (इसमें विंडो नाम और शीर्षक भी शामिल हैं, लेकिन इतिहास नहीं), (एक से अधिक विंडो ओपन के साथ शुरू) प्रेस Ctrl- b fफिर स्ट्रिंग को खोजने और प्रेस करने के लिए टाइप करें Enter। अगर यह मिल जाए तो आपको उस पाठ वाली विंडो पर स्विच कर दिया जाएगा। यदि एक से अधिक विंडो मेल खाती हैं, तो आपको चयन करने के लिए एक सूची दिखाई देगी।
EDITOR
या VISUAL
) उस शैली को सेट करना आसान हो सकता है जिसे आप शुरू करने से पहले चाहते हैं tmux
।
set-window-option -g mode-keys vi
मेरे साथ काम करने के लिए मिला .tmux.conf
। लेकिन मैं पर्यावरण चर विकल्प के बारे में उत्सुक था और इसे काम करने के लिए नहीं मिला। क्या यह शेल पर्यावरण वैरिएबल है, या tmux एन्वायर्नमेंट वैरिएबल है जिसे कॉन्फिडेंस फाइल में सेट करना है?
VISUAL=vi tmux
कॉपी मोड दर्ज करें और एक बार में खोज शुरू करें
bind-key / copy-mode \; send-key ?
आपको बस करने की अनुमति देता है:
Ctrl + B /
और खोज शब्द लिखना शुरू करें।
फ़ाइल को डंप करें और विम का उपयोग करें
जब चीजें अधिक जुड़ जाती हैं, तो मैं बस एक उचित संपादक का उपयोग करना चाहता हूं: https://unix.stackexchange.com/questions/26548/write-all-tmux-scrollback-to-a-file
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
अब P
बफ़र को फ़ाइल में डंप करता है, और फिर मैं बस:
vim /tmp/tmux
Tmux 2.6 में परीक्षण किया गया।
/tmp/tmux
)?
आप स्क्रीन लॉग को देखने / संपादित करने / खोजने / सहेजने के लिए vim का उपयोग कर सकते हैं, प्रत्येक bash प्रॉम्प्ट पर लॉग को मोड़ो:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
अपने प्रॉम्प्ट के अनुसार रेगेक्स को समायोजित करें, रेगेक्स में प्रत्येक बैकस्लैश के लिए चार बैकस्लैश का उपयोग करें।
या vim फंक्शन को ~ / .vimrc में डालें:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
और ~ / .bashrc में शीघ्रता से तारीख जोड़ें, यदि आपके पास खोज के लिए बहुत सारे लॉग हैं। जैसे
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
यहाँ एक समाधान है जो मैंने पाया।
आप लक्ष्य पथ और फ़ाइल नाम को भी संशोधित कर सकते हैं:
# Save screen content to file
bind p command-prompt -p 'Save history to:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Tmux config फाइल को पुनः लोड करने के बाद आप prefix p
मेरे मामले में दबा Ctrl+a p
सकते हैं आप bind p
अपने पसंदीदा कुंजी संयोजन में बदल सकते हैं ।
पहली खदान काम नहीं कर रही थी क्योंकि मैं bind p
दूसरी लाइन में ओवर राइटिंग कर रहा था इसलिए मैंने सिर्फ यह टिप्पणी की।
tmux
(tmux -V
) का क्या संस्करण है ? मेरा मानना है कि यह संस्करण 0.9 में जोड़ा गया था।