फ़ाइल का नाम कैसे प्रदर्शित करें जिसे मैं वर्तमान में टर्मिनल शीर्षक पर विम के साथ संपादित कर रहा हूं?


20

मैं एक ही टर्मिनल पर एक ही फ़ोल्डर में, कई टैब में स्थित कई फाइलों को संपादित कर रहा हूं।

pwd(निर्देशिका जिसमें मैं वर्तमान में काम कर रहा हूं) टर्मिनल के शीर्ष पर प्रदर्शित होता है, लेकिन मैं जिस फ़ाइल का संपादन कर रहा हूं उसका नाम नहीं है। एक ही निर्देशिका में कई फ़ाइलों के साथ काम करते समय यह भ्रमित हो जाता है।

टर्मिनल के शीर्ष पर वर्तमान फ़ाइल का नाम कैसे प्रदर्शित करें pwd

मैं 12.04 LTS पर vimबैश शेल में चल रहा हूं gnome-terminal


1
क्या संपादक का उपयोग कर संपादन? किस खोल में? कौन सा टर्मिनल एमुलेटर?
टेराडॉन

@terdon - विम, बैश शेल, टर्म एमुलेटर का उपयोग कर संपादित करना
मल्हार

2
कृपया अतिरिक्त जानकारी जोड़ने के लिए अपने प्रश्न को संपादित करें, यह पढ़ना मुश्किल है और टिप्पणियों में याद करना आसान है। फिर आप उस उपयोगकर्ता को पिंग कर सकते हैं जिसने टिप्पणी छोड़ कर और @उनके उपयोगकर्ता नाम से पहले जानकारी मांगी थी । उदाहरण के लिए, मुझे पिंग करने के लिए @terdon:।
टेराडॉन

xtermकोई टैब नहीं है क्या आपको यकीन है कि यह है xterm? echo $TERMआमतौर पर आपके टर्मिनल एमुलेटर का नाम नहीं लौटता है यदि आपने ऐसा किया है।
टेराडॉन

@terdon हाँ, मैंने इको $ TERM का उपयोग किया। यह "xterm" का उत्पादन करता है। मैं 64 बिट ubuntu 12.04 एलटीएस डिफ़ॉल्ट टर्मिनल का उपयोग कर रहा हूं। क्या एमुलेटर के विवरण की जांच करने के लिए कोई अन्य तरीके हैं।
मल्हार

जवाबों:


13

आपको .vimrcनिम्नलिखित कोड के साथ अपने घर निर्देशिका में एक फ़ाइल नाम रखना / बनाना होगा :

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

यहाँ छवि विवरण दर्ज करें

स्रोत: सूक्ति-टर्मिनल शीर्षक बदलने की अनुमति नहीं देता है


^ बनाने के लिए [, जो बच रहा है, आपको CTRL + V <Esc>
टिनमारिनो

8

यदि आप फ़ाइलों / बफ़र्स को अपने किसी विम सत्र में स्विच करते हैं तो वर्तमान (स्वीकृत) उत्तर काम नहीं करता है। शीर्षक अपडेट नहीं किया जाएगा।

जब आप फ़ाइलों का उपयोग करके स्विच करते हैं :e foo.txt, तो gnome- टर्मिनल में स्वचालित रूप से अपडेट किए गए शीर्षक के लिए निम्नलिखित पर्याप्त है :b0,:b# , आदि

बस इसे अपनी ~/.vimrcफ़ाइल में रखें:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

सिस्टम: Ubuntu 14.10, vim 7.4.273, सूक्ति-टर्मिनल 3.6.2-0ubunt।


set titleएक ही लाइन पर नहीं होना चाहिए , के बाद |?
विक्टर सर्जेनको

प्रश्न से संबंधित: vim बाहर निकलने के बाद शीर्षक बहाल करने के लिए, जोड़ने set titleold=के लिए .vimrc
विक्टर सर्जेनको

5

सीधे शब्दों में कहें

set title

अपने को ~/.vimrc

उदाहरण शीर्षक: testfile (~ / दस्तावेज़) - VIM


1
यह एक ही जवाब है कि मेरे लिए काम किया और सबसे छोटा है।
user10089632

1

आप उस फ़ाइल का नाम जोड़ सकते हैं जिसे आप एक टैब में निम्नलिखित तरीके से संपादित कर रहे हैं:

  1. टर्मिनल के शीर्ष पर मेनू में जाएं। टर्मिनल-> सेट शीर्षक-> यहां आप उस फ़ाइल का नाम जोड़ते हैं जिसे आप वर्तमान में संपादित कर रहे हैं

उदाहरण के लिए, जब आप टर्मिनल खोलते हैं, तो टर्मिनल का शीर्षक केवल "~" दिखाता है। pwd शो / होम / xxx /

मान लें कि इस स्थान पर, आप एक फ़ाइल ABC.cpp का संपादन कर रहे हैं, आप सेट शीर्षक फ़ील्ड में "/ABC.cpp" को जोड़कर टैब का शीर्षक "~ / ABC.cpp" पर सेट कर सकते हैं।

इसी तरह, आप इसे अन्य टैब के लिए भी दोहरा सकते हैं।


4
और जब आप किसी अन्य फ़ाइल को संपादित करते हैं तो आप हर बार ये बदलाव करेंगे? पीड़ादायक लगता है ...
राडू रियडेनू

0

यदि आप एक बफर का नाम बदलते हैं, तो यह विंडो शीर्षक भी बदलता है:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

एक समूह में कमांड डालने से सोर्स करते समय कई बार कमांड को निष्पादित करने से बचा जाता है vimrc

यह अच्छी तरह से vim-eunuch के साथ काम करता है जो आपको एक फ़ाइल का उपयोग करके नाम बदलने की सुविधा देता है :Rename

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.