Vm में संपादित फ़ाइल के नाम के साथ tmux टैब को कैसे लेबल करें?


14

जब भी मैं टर्मिनल में tmux सेशन खोलता हूं, तो vim सेशन वाले सभी टैब लेबल किए जाते हैं vim

मेरा प्रश्न है: संपादित फ़ाइल के नाम के साथ tmux टैब को लेबल करने के लिए इसे कैसे कॉन्फ़िगर करें या vim | test.cppप्रश्न में टैब के शीर्षक के रूप में उपयोग किए जाने वाले कुछ ।


1
क्या यह मदद कर सकता है: stackoverflow.com/a/15124717/2558252 ?
nobe4

इसके लिए धन्यवाद लेकिन क्या आप इस प्रक्रिया को थोड़ा विस्तार से बता सकते हैं? इसके अलावा जवाब पूरा नहीं है। आदमी ने सिर्फ एक संकेत दिया
मयूख सरकार

जैसा कि प्रश्न का उत्तर दिया गया था (और IMHO सही ढंग से) क्या आप इसे स्वीकार कर सकते हैं?
nobe4

जवाबों:


19

तुम वहाँ जाओ :

autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call system("tmux rename-window 'vim | " . expand("%:t") . "'")

निस्तारण:

autocmd BufReadPost,FileReadPost,BufNewFile,BufEnter * call

बफर रीड पर, फ़ाइल पढ़ें या बफर नई फ़ाइल घटना (देखें :help autocmd-events) अगले कमांड को निष्पादित करें:

call system()

एक सिस्टम फ़ंक्शन को कॉल करें और इसे पाठ पास करें:

"tmux rename-window 'vim | "  

वर्तमान विंडो का नाम स्ट्रिंग से शुरू करें vim |

. expand("%:t") 

स्ट्रिंग को फ़ाइल नाम में जोड़ें ( इस आलेख को स्वरूपण के लिए देखें और विस्तृत प्रविष्टि के लिए यह पोस्ट )

. "'"

'कमांड को बंद करने के लिए फाइनल जोड़ें ।

विस्तार करने के बाद यह (.vimrc फ़ाइल को संपादित करते समय) जैसा दिखेगा:

system("tmux rename-window 'vim | .vimrc'")

जैसा कि @erthalion ने टिप्पणी में कहा है, आप विम को छोड़ने पर सफाई कर सकते हैं:

autocmd VimLeave * call system("tmux rename-window 'tmux'")

1
मुझे लगता है कि BufEnterइस सूची में ईवेंट को शामिल करना अच्छा होगा (मौजूदा बफ़र्स के बीच स्विच करने पर भी लेबल बदलने के लिए), और autocmd VimLeave * call system("tmux rename-window 'tmux'")क्लीनअप के दौरान ऐसा ही कुछ ।
र्टेलियन

3

जब आप भी कर सकते हैं छोड़ने के लिए डिफ़ॉल्ट tmux नामकरण योजना को पुनर्स्थापित करने के लिए:

autocmd VimLeave * call system("tmux setw automatic-rename")

इसका उपयोग अन्य उत्तर के साथ एकसमान में किया जाता है जो सबसे अच्छा समाधान प्रदान करता है। मैंने tmux rename-window स्निपेट को सभी जगह देखा है, लेकिन यह पहली बार है जब किसी ने स्वचालित-rename tmux विंडो विकल्प को इंगित किया है। धन्यवाद।
193 बजे f3xy

1

यह वही है जो मैंने अपने vimrc में @raphael के उत्तर के लिए धन्यवाद दिया है

मैं फोकस-फोकस और फ़ोकलॉस्ट घटनाओं के लिए tmux-plugins / vim-tmux-focus- event प्लगइन भी स्थापित करता हूं ।

augroup tmux                                                                                                                                                                                                                                                                                                                 
  autocmd!                                                                                                                                                                                                                                                                                                                 
  if exists('$TMUX')                                                                                                                                                                                                                                                                                                       
    autocmd BufReadPost,FileReadPost,BufNewFile,FocusGained * call system("tmux rename-window " . expand("%:t"))                                                                                                                                                                                                         
    autocmd VimLeave,FocusLost * call system("tmux set-window-option automatic-rename")                                                                                                                                                                                                                                  
  endif                                                                                                                                                                                                                                                                                                            
augroup END
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.