विम में एक अधिक उपयोगी स्थिति? [बन्द है]


150

मैं अपने स्टेटस को अधिक जानकारीपूर्ण और रोचक बनाना चाहता हूं, और इसके लिए मुझे कुछ विचारों की आवश्यकता है। आपने अपनी स्थिति कैसे अनुकूलित की?


5
@ पैक्सडीब्लो: कभी-कभी अपनी ज़रूरत के लिए उपकरण को कॉन्फ़िगर करने के लिए समय बिताने के लायक होता है ताकि आप इसका बेहतर उपयोग कर सकें और इस प्रकार काम करते समय समय बचा सकें।
डार्कडस्ट

10
यह एक सामुदायिक विकि होना चाहिए क्योंकि इसका कोई सही उत्तर नहीं है।
रैंडी मॉरिस

3
यह विचारों के बारे में इतना नहीं है जितना कि अधिक सीखा व्यक्तियों के अनुभव और विशेषज्ञता का लाभ उठाना है। प्रश्नकर्ता ऐसी जानकारी की तलाश कर रहा है जिसे वह अनुमान नहीं लगा सकता है, व्यक्तियों के बारे में पूछने के लिए कि सबसे अच्छा क्या है। उत्तर कई विकल्प उत्पन्न करेगा, जो पहले उनके पास नहीं थे। सिर्फ इसलिए कि एक प्रश्न का एक से अधिक उत्तर है, इसका मतलब यह नहीं है कि यह तकनीकी विशेषज्ञता आधारित प्रश्न नहीं है। यह प्रश्न SO प्रारूप को अच्छी तरह से फिट करता है और इसे खुला रहना चाहिए।
5

जवाबों:


134

संपादित करें: -

नोट विम-एयरलाइन कुछ ट्रैक्शन प्राप्त कर रहा है क्योंकि नया वायसस्क्रिप्ट विकल्प है क्योंकि पावरलाइन अजगर हो गया है।


लगता है powerline जहां यह इन दिनों में है: -

सामान्य स्थिति रेखा

विद्युत लाइन

अन्य प्लगइन्स के लिए अनुकूलित स्थिति रेखाएँ (जैसे ctrlp )

विद्युत लाइन


3
@ गैविन मैं आपकी पावर लाइन सेगमेंट में कैसे बदल सकता हूं? क्या आप कुछ डिफ़ॉल्ट खंड संशोधन लिपियों को अपडेट कर सकते हैं? चीयर्स
जेरी गाओ

@ गेविन I, भी, अगर आप साझा कर सकते हैं कि आप कैसे अपनी शाखा जैसी चीजों को विम-पॉवरलाइन में शामिल कर सकते हैं
एरिक हू

1
कुछ भी विशेष नहीं किया गया है: github.com/Lokaltog/vim-powerline#troublesourcing सिर्फ यह सुनिश्चित करें कि आपने अपनी vimrc फ़ाइल में "let g: Powerline_symbols = 'फैंसी' किया है और पैचअप इंस्टॉल किए हैं।
गेविन गिल्मर

यह एक अच्छा प्लगइन है। लेकिन जब मैं पहली बार किसी फाइल को खोलता हूं तो मेरी स्क्रॉलिंग परफॉर्मेंस बहुत खराब होती है।
अहमद ऐसन एक्सन

2
@AhmedAeonAxan एयरलाइन की कोशिश करो, यह तेजी से (शुद्ध vimscript) शुरू होता है। और सेटअप के लिए कम प्रयास करता है, विशेष रूप से वंडल या पैथोजन के साथ। और एक बार जब आप पावरलाइन फ़ॉन्ट स्थापित करते हैं तो यह कमोबेश एयरलाइन की तरह दिखाई देता है। github.com/Lokaltog/powerline-fonts
स्नोबाउंड

60

ये मेरा:

set statusline=
set statusline +=%1*\ %n\ %*            "buffer number
set statusline +=%5*%{&ff}%*            "file format
set statusline +=%3*%y%*                "file type
set statusline +=%4*\ %<%F%*            "full path
set statusline +=%2*%m%*                "modified flag
set statusline +=%1*%=%5l%*             "current line
set statusline +=%2*/%L%*               "total lines
set statusline +=%1*%4v\ %*             "virtual column number
set statusline +=%2*0x%04B\ %*          "character under cursor

vim स्थिति

और यहाँ रंग मैं इस्तेमाल किया है:

hi User1 guifg=#eea040 guibg=#222222
hi User2 guifg=#dd3333 guibg=#222222
hi User3 guifg=#ff66ff guibg=#222222
hi User4 guifg=#a0ee40 guibg=#222222
hi User5 guifg=#eeee40 guibg=#222222

1
c वास्तव में बाइट काउंट है, भले ही इसे कभी-कभी विम मदद में भी कॉलम काउंट कहा जाता है। आप वी नंबर का उपयोग कर सकते हैं जो आमतौर पर कॉलम नंबर से होता है।
लुडविग वेन्ज़िएरल

धन्यवाद @Ludwig, मैंने इस पर ध्यान नहीं दिया। मैं उत्तर संपादित करूँगा।
तस्सो

8
मुझे यह पसंद है कि प्रत्येक पंक्ति में प्रत्येक संलग्न मूल्य की टिप्पणी की स्पष्टता है। अगर मैंने 7 साल पहले ऐसा किया होता, तो मैं अपना आखिरी क्लीन ओएस इंस्टॉल करने के बाद इसे बाहर नहीं फेंकता।
ब्रूनो ब्रोंस्की

Sweeet! एक चीज जो मुझे याद आ रही है, वह है इस लाइन का जो अलग किए गए सत्र को अलग करती है
जूलियो मरिंस

1
@trusktr ध्यान दें कि guifgऔर के guibgलिए हैं gvim। आपके द्वारा चलाए जा रहे हैं, तो vimएक टर्मिनल में, कोशिश ctermfgऔर ctermbgबजाय। आपको विभिन्न रंगों की भी आवश्यकता होगी, 1-16 या 1-256 की संख्या इस बात पर निर्भर करती है कि आपने कितने रंगों को सक्षम किया है। प्रत्येक नंबर के लिए रंग
जोएलोस्टब्लोम

46

यह वह है जिसका मैं उपयोग करता हूं:

set statusline=
set statusline+=%7*\[%n]                                  "buffernr
set statusline+=%1*\ %<%F\                                "File+path
set statusline+=%2*\ %y\                                  "FileType
set statusline+=%3*\ %{''.(&fenc!=''?&fenc:&enc).''}      "Encoding
set statusline+=%3*\ %{(&bomb?\",BOM\":\"\")}\            "Encoding2
set statusline+=%4*\ %{&ff}\                              "FileFormat (dos/unix..) 
set statusline+=%5*\ %{&spelllang}\%{HighlightSearch()}\  "Spellanguage & Highlight on?
set statusline+=%8*\ %=\ row:%l/%L\ (%03p%%)\             "Rownumber/total (%)
set statusline+=%9*\ col:%03c\                            "Colnr
set statusline+=%0*\ \ %m%r%w\ %P\ \                      "Modified? Readonly? Top/bot.

पर प्रकाश डाला? समारोह:

function! HighlightSearch()
  if &hls
    return 'H'
  else
    return ''
  endif
endfunction

रंग (ligh2011.vim से अनुकूलित):

hi User1 guifg=#ffdad8  guibg=#880c0e
hi User2 guifg=#000000  guibg=#F4905C
hi User3 guifg=#292b00  guibg=#f4f597
hi User4 guifg=#112605  guibg=#aefe7B
hi User5 guifg=#051d00  guibg=#7dcc7d
hi User7 guifg=#ffffff  guibg=#880c0e gui=bold
hi User8 guifg=#ffffff  guibg=#5b7fbb
hi User9 guifg=#ffffff  guibg=#810085
hi User0 guifg=#ffffff  guibg=#094afe

मेरा स्टेटसलाइन


2
अच्छा है, यह मेरे उपयोग के मामले के लिए कम से कम फैंसी स्टेटस लाइन प्लगइन्स की आवश्यकता को टालता है, आंख कैंडी :)
निशांत

1
आपको काम करने के लिए रंग कैसे मिलते हैं?
trusktr

मैंने इसे किसी भी colorschemeसेट के बाद डालने की कोशिश की , लेकिन मुझे सिर्फ एक दोहरे स्वर वाली स्थिति दिखाई दे रही है।
trusktr

@trusktr, समझाने में आसान नहीं .... आपको अपनी vimrc फ़ाइल में पहले 2 ब्लॉक और अपनी वर्तमान colorcheme फ़ाइल में रंग ब्लॉक की आवश्यकता है। आप इस कमांड के साथ अपनी वर्तमान :colorscheme
कलर्सकेम

1
आपकी हाइलाइट खोज केवल इस तरह से टर्नरी ऑपरेटर के उपयोग से कम (बिना किसी फ़ंक्शन के) होगी - echo &hls ? 'H' : '' मेरे मामले में:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

मैंने जो उपयोगी पाया है वह यह जानने के लिए है कि वर्तमान में कौन सा कॉपी / पेस्ट बफर (रजिस्टर) सक्रिय है %{v:register}:। अन्यथा, मेरी पूरी स्थिति रेखा मानक रेखा के समान ही दिखाई देती है।

:set statusline=%<%f\ %h%m%r\ %y%=%{v:register}\ %-14.(%l,%c%V%)\ %P

2
मेरा, जो v:registerवास्तव में बहुत उपयोगी लगता है!
nperson325681

एक रजिस्टर के सक्रिय होने का क्या मतलब है? रजिस्टरों के बारे में मेरी (बुरी) समझ यह है कि वे मूल रूप से टेक्स्ट स्टोर करने के लिए क्लिपबोर्ड थे।
रॉयमुनसन

15

कुछ समय कम है, क्या आपको कोडिंग करते समय फ़ाइल के माध्यम से प्रतिशत जानने की आवश्यकता है? फ़ाइल के प्रकार के बारे में क्या?

set statusline=%F%m%r%h%w\ 
set statusline+=%{fugitive#statusline()}\    
set statusline+=[%{strlen(&fenc)?&fenc:&enc}]
set statusline+=\ [line\ %l\/%L]          
set statusline+=%{rvm#statusline()}       

statusline

statusline

मैं न्यूनतम रंग पसंद करता हूं क्योंकि कोड से ध्यान न भटके।

से लिया गया: https://github.com/krisleech/vimfiles

नोट: rvm#statuslineरूबी विशिष्ट है और fugitive#statuslineगिट विशिष्ट है।


1
Git संबंधित स्टेटस के लिए +1
पैट्रिक

3

मैं वर्तमान में इस स्थिति पट्टी सेटिंग्स का उपयोग करता हूं:

set laststatus=2
set statusline=\ %f%m%r%h%w\ %=%({%{&ff}\|%{(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\")}%k\|%Y}%)\ %([%l,%v][%p%%]\ %)

मेरी पूरी .vimrc फ़ाइल: http://gabriev82.altervista.org/projects/vim-configature/


1

set statusline=%<%f%m\ \[%{&ff}:%{&fenc}:%Y]\ %{getcwd()}\ \ \[%{strftime('%Y/%b/%d\ %a\ %I:%M\ %p')}\]\ %=\ Line:%l\/%L\ Column:%c%V\ %P

यह मेरा है, एक सुझाव के रूप में दे

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