एक sysadmins .vimrc में प्रविष्टियों के लिए सुझाव


21

बहुत कम से कम मैं हमेशा / etc / vim / vimrc में "सिंटैक्स पर" असहज करता हूं


यदि आप अक्सर बड़ी फ़ाइलों को संपादित करते हैं, तो हमेशा वाक्यविन्यास करना एक बुरा विचार हो सकता है । लार्जेस फ़ाइलों (दर्जनों या सैकड़ों एमबी) पर, वाक्यविन्यास हाइलाइटिंग कई सेकंड के लिए गैर-जिम्मेदार बनने का कारण बन सकती है, क्योंकि यह बहुत सी सीपीयू खाती है। बस एक बड़ी XML फ़ाइल को संपादित करने का प्रयास करें ... निश्चित रूप से आप हमेशा ऐसा कर सकते हैं: सिंक बंद (एक बार विम वापस आ गया है ...)।
sleske

जवाबों:


4

हमारे CTO में GitHub पर एक बहुत अच्छी सुविधा से भरा Vim विन्यास है

मुख्य विशेषताएं:

  • सिंटैक्स हाइलाइटिंग, 2 स्पेस टैबस्टॉप, विस्तारित टैब।
  • NERDtree, TextMate के प्रोजेक्ट ड्रॉअर के समान एक फ़ाइल-ट्री दृश्य।
  • FuzzyFileFinder , TextMate की cmd-T कार्यक्षमता करने के लिए प्लगइन।
  • एक अच्छा (गोधूलि) डिफ़ॉल्ट के साथ बहुत सारे रंग थीम।

मुझे रूबी कोडिंग के लिए बहुत अच्छा लगता है, क्योंकि हमारे सिस्टम एडमिनिस्ट्रेशन टूल रूबी में लिखे गए हैं।


मैंने अभी इनमें से एक समूह के साथ खेला है और आपके द्वारा सूचीबद्ध विम कॉन्फिग के साथ जांच करने के लिए और भी बहुत कुछ है लेकिन यह मेरी चूक और उपयोगी सुविधाओं की अपेक्षा पर फिट बैठता है। यकीन नहीं होता कि कैसे एक समुदाय विकि मुझे 'उत्तर' के रूप में वोट देता है लेकिन किसी भी तरह। धन्यवाद!
गैरेथ

17

सबसे पहले, आप एक जोड़ी मशीनों के साथ आप काम की तुलना में अधिक है, अपने डालने पर विचार ~/.vim/, ~/.vimrcऔर अन्य उपयोगी config फ़ाइलें ( screenएक संशोधन नियंत्रण प्रणाली में, अपने खोल, आदि)। मैं उपयोग करना पसंद करता हूं darcs- यह डेबियन सिस्टम पर सस्ता है (हास्केल कंपाइलर स्थापित करने की आवश्यकता नहीं है, बस सीधे पैकेज स्थापित करें), वितरित और महान इंटरैक्टिव मोड हैं। यदि आप जानते हैं / पसंद करते हैं git, तो आप उसके साथ भी चिपक सकते हैं।

मेरी वर्तमान कॉन्फिग फाइल्स मेरे डार्क्स रिपॉजिटरी में उपलब्ध हैं http://repo.harnir.net/,। मेरे ~/.vimrcअनुसरण से कुछ विशिष्ट उदाहरण । क्षमा करें, स्क्रिप्ट के लिए कोई लिंक नहीं है, आदि क्योंकि मैं एक नया उपयोगकर्ता हूं, लेकिन उन सभी को जो आप पा सकते हैं http://vim.org/

Sysadmins के लिए आवश्यक वीआईएम स्क्रिप्ट

  • जब आप दूरस्थ फ़ाइलों को संपादित करते हैं तो एक बैकअप स्क्रिप्ट बहुत जरूरी है। मैं cbackup.vim स्क्रिप्ट का उपयोग करता हूं , जो एक केंद्रीय निर्देशिका में प्रत्येक संपादित फ़ाइल की अंतिम 10 प्रतियां रखता है और स्वचालित रूप से पुराने को हटा देता है - बस अपनी ~/.vim/plugins/निर्देशिका में डालें और इसके बारे में भूल जाएं :-)

  • कार्यसूची आप जल्दी के लिए खोज करने देता है FIXME, XXXऔर TODOवर्तमान फ़ाइल में टैग, उन्हें प्रदर्शित करने और सिर्फ एक कुंजी दबाने के साथ टैग करने के लिए जाना। यदि आप इन टैग का उपयोग करते हैं, तो इसे स्थापित करने पर विचार करें

  • Dbext सभी DBA के लिए आवश्यक है, डेटाबेस के साथ काम करने वाले प्रोग्रामर के लिए भी बहुत उपयोगी है। आइए आप प्रश्नों को चलाएं, डेटाबेस की संरचना और व्हाट्सएप की जांच करें। यह अनिवार्य रूप जैसे उपकरणों के लिए एक सामने अंत है mysql, sqlite3, sqlplusऔर अन्य। यदि आप डेटाबेस के साथ काम करते हैं, तो यह बहुत जरूरी है!

सिंटेक्स फाइलें

मैंने जंगली में कई उपयोगी वाक्यविन्यास नहीं देखे हैं, अधिकांश फाइलें sysadmins के साथ काम करती हैं जो कि कॉन्फ़िगर हैं /etcऔर वे आमतौर पर बहुत अच्छी तरह से हाइलाइट किए जाते हैं। ~/.vim/syntax/वर्तमान में मेरे पास सीएसएस रंगों के लिए वाक्यविन्यास है , जो भयानक (वेब ​​डेवलपर्स के लिए भी अच्छा है), लेकिन बाकी बहुत अच्छी तरह से नहीं लिखा है, मैं शायद खाली समय में उन्हें अपडेट करूंगा। Dhcpd.conf , / etc / network / interfaces , nginx कॉन्फ़िगरेशन फ़ाइलों और SpamAssassin की local.cf के लिए अतिरिक्त सिंटैक्स फ़ाइलें हैं ।

सिंटैक्स के साथ उपयोगी टिप: यदि कोई कॉन्फ़िगरेशन फ़ाइल मान्यता प्राप्त नहीं है (एक अजीब नाम है, जैसे /etc/apache2/sites-enabled/some.domain.com, आप या तो इसके नाम के सही विस्तार को जोड़ सकते हैं (इस मामले में .conf) या इसके अंत में एक वीआईएम मॉडलइन जोड़ें:

# vim: filetype = apache

वीआईएम विन्यास विकल्प

अधिकांश विन्यास विकल्प बहुत लोकप्रिय हैं, जैसे set nocompatible rulerआदि बहुत अच्छे विकल्प हैं:

  • set gdefault: gमोड को इनवॉयर करता है s///g- उस विकल्प के साथ /gडिफ़ॉल्ट रूप से उपयोग किया जाएगा, इसलिए आपको इसे हर बार जोड़ने की आवश्यकता नहीं है - बस इसे बंद करने के लिए जोड़ें

  • set incsearch ignorecase smartcase hlsearch: फ़ाइलों के माध्यम से खोज के लिए आवश्यक - वृद्धिशील, वास्तविक समय में मैच दिखाता है, मामले को अनदेखा करता है जब तक कि आप ऊपरी मामले पत्रों का उपयोग नहीं करते

  • set pastetoggle=<F6>: या अन्य कुंजी जो आप पसंद करते हैं, बीच paste- बीच में टॉगल करते हैं, nopasteयदि आप किसी वेब पेज से कुछ कॉपी-पेस्ट करते हैं जैसे कि सर्वरफायर :-)

  • set noerrorbells visualbell t_vb=: कष्टप्रद घंटी या दृश्य घंटी से छुटकारा पाने के लिए हर बार जब आप कुछ करते हैं;)

फ़ंक्शंस, कीबोर्ड मैपिंग

  • यदि आप किसी टीम में काम करते हैं, तो अपने उपयोगकर्ता नाम और वर्तमान तिथि को एक फ़ाइल में पेस्ट करें, जो फाइलों में टिप्पणियां जोड़ते हैं कि कब किसने कुछ बदल दिया। बस xxsigस्पेस लिखिए और प्रेस करिए, इसे कुछ इस तरह बदला जाएगा harnir 20090531। इसके लिए रूट के साथ सही तरीके से काम करने के लिए (अर्थात इसके बजाय अपना उपयोगकर्ता नाम लिखें root), आपको उपयोग करने में लॉग इन करना होगा sudo

    iabbrev xxsig <Esc>: r! इको "$ USER` दिनांक '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • टिप्पणी "लाइनें" डालें, जैसे # -- Some title -------------------{{{1, लंबाई 78 वर्ण - \com#सामान्य मोड में दबाएं और वहां यह है। आप स्वचालित रूप से प्रतिस्थापन मोड में होंगे ताकि आप शीर्षक जोड़ सकें:

    nmap \ com # O # <Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <Home> 4 <Right> R <Space>
    

आप आसानी से अन्य टिप्पणी प्रणाली (के लिए संशोधित कर सकते हैं ", //आदि), या बस मेरी कॉन्फ़िग फ़ाइल की जाँच करें।

अंत स्पर्श

यदि आपके पास आरसीएस प्रणाली में आपकी कॉन्फ़िगरेशन फाइलें हैं, तो आप कभी-कभी एक निश्चित मशीन के लिए कॉन्फ़िगरेशन विकल्प शामिल कर सकते हैं। उसके लिए, ~/.vimrc.localफ़ाइल का होना अच्छा है , कॉन्फ़िगरेशन के अंत में स्वचालित रूप से शामिल (यदि यह मौजूद है, तो निश्चित रूप से)।

अगर filereadable (विस्तार ("~ / .vimrc.local"))
        source ~ / .vimrc.local
अगर अंत

अंतिम टिप - भले ही यह हो सकता है - जब आपके पास एनएफएस-माउंटेड होम डाइरेक्टरी हों तो यह काम नहीं करता है: आप जिस भी मशीन पर हैं, आपके होम डायरेक्टरी वही होगी। ध्यान दें, भी, वह टिप "~" की परिभाषा पर निर्भर करता है - कुछ गोले उस शॉर्टहैंड का समर्थन नहीं करते हैं।
मेई

एक sysadmin के रूप में, आप शायद 'रूट' खाते के सर्वर पर काम करते हैं, जो स्थानीय होना चाहिए और एनएफएस के माध्यम से माउंट नहीं होना चाहिए। इस स्थिति में /root/.vimrc.local को ठीक काम करना चाहिए।
जूना

6

वास्तव में यह सुनिश्चित नहीं है कि इसका कौन सा हिस्सा विशेष रूप से संबंधित है, लेकिन मेरी अनिवार्यताएं हैं:

syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
  filetype plugin indent on
endif
set showcmd             " Show (partial) command in status line.
set showmatch           " Show matching brackets.
set ignorecase          " Do case insensitive matching
set smartcase           " Do smart case matching
set incsearch           " Incremental search

मैं यह भी हमेशा सुनिश्चित करता हूं कि मशीन के पास nginx सिंटैक्स हाइलाइटिंग फ़ाइल तक पहुंच हो ।


मैंने इसे केवल इस तरह से अलग किया है कि अलग करने के लिए विशेष रूप से 'प्रोग्रामिंग' से संबंधित क्या हो सकता है। क्या मुझे लगता है कि प्रश्न को बदलना चाहिए?
गारेथ

नाह ने इसे वैसे ही छोड़ दिया, मुझे यकीन है कि कुछ लोगों के पास सिसडमिन से संबंधित सामान है, बस मुझे नहीं।
एडम गिबिन्स

आम तौर पर इससे सहमत होते हैं ... लेकिन एक टैब 8-रिक्त स्थान है। और कुछ भी और यह कम / पूंछ / बिल्ली में भिन्न रूप से व्यवहार करता है। हालांकि उन धार्मिक चीजों में से एक हो सकता है।
अलेक्जेंड्रे कार्मेल-वीलीक्स

4

यदि आप आम तौर पर किसी उपयोगकर्ता पर काम कर रहे हैं, तो इससे sudo के लिए एक फ़ाइल को "पाइप" करना संभव है ताकि इसे बचाया जा सके।

cmap w!! %!sudo tee > /dev/null %

कमांड का उपयोग करें:

:w!!

sudo envoke और फाइल को सेव करने के लिए।


दिलचस्प। teeइसके बजाय आप का उपयोग क्यों करते हैं cat?
डेविड श्मिट

1
क्योंकि बिल्ली एक फाइल के लिए कुछ भी नहीं लिखेगी; यह सिर्फ stdout को लिखता है।
क्रिस जस्टर-यंग

बिल्ली ->% बस के रूप में अच्छा काम करता है।
ओले


2

बेशर्म प्लग। यह वास्तव में -vimrc परिवर्तन नहीं है, बल्कि एक VIM प्लगइन है। मैं VIM के हर संस्थापित संस्करण पर RCSVers का उपयोग करता हूँ। मूल रूप से यह आपके द्वारा संपादित किसी भी फ़ाइल के एक संस्करण को बचाने के लिए आरसीएस कमांड का उपयोग करता है। आपको नहीं पता कि मैंने कितनी बार RCSVers को मेरे द्वारा किए गए परिवर्तनों को दिखाते हुए मुझे बचाने के लिए एक कॉन्फ़िग फ़ाइल को खराब कर दिया है।

http://www.vim.org/scripts/script.php?script_id=563


2

VIM सीखने से बचने के लिए .vimrc का उपयोग न करें

चूंकि मुझे पता है कि बहुत सारे वीआईएम नए कॉमर्स इसे पढ़ेंगे, मेरे पास सबसे अच्छा सुझाव यह है: "आलसी मत बनो और अपने .vimrc में मैप एंट्रीज डालो।" वीआईएम में चीजों को करने के गैर-मानक तरीके सीखने से आपको ऐसा महसूस होगा। जब आप अपने vimrc के बिना हों तो कुल जिम्प। Vi के लिए सीखने की अवस्था खड़ी है, लेकिन आप खुद को सीखने के लिए नहीं चुनकर कोई एहसान नहीं कर रहे हैं।


1
विम में अच्छी विशेषताएं हैं। इसका उपयोग क्यों नहीं करते ?? जब आपको vi पर स्विच करना होता है, तो यह अस्थायी होता है। यदि आपको लगता है कि आपको भारी काम करना होगा जहाँ विम स्थापित नहीं है, तो इसे स्थापित करने के लायक है।
ल्यूक एम

0

मेरे उत्तर का कम से कम एक हिस्सा मेरी प्रोग्रामिंग के समान है ।vimrc:

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

यदि कम से कम कुछ फाइलें जो आप संपादित कर रहे हैं वे आरसीएस में नहीं हैं, तो उन्हें होना चाहिए! :)



0

मैं अक्सर अजीब मुद्दों को ट्रैक करने के लिए स्ट्रेस का उपयोग करके समाप्त होता हूं। नतीजतन, कुछ लाइनों को हाइलाइट करने के लिए एक बड़ी स्ट्रिंग स्ट्रिंग के साथ हास्यास्पद हो सकता है। यह मामला होने के नाते, मैं सिंटैक्स को 2048 कॉलम तक हाइलाइट करने के लिए सिंटैक्सैक्स = 2048 का उपयोग करता हूं।

मैं टैगलिस्ट प्लगइन का भी बहुत प्रशंसक हूं, जो अत्यधिक टैग का उपयोग करता है। अब तक मैं संकलित ctags बाइनरी के आसपास चारों ओर धकेलने में सक्षम रहा हूं और किसी भी पुस्तकालय के मुद्दों पर नहीं आया हूं। यह जल्दी से मुझे मेरे साथ काम करने वाले किसी भी कोड के बीच नेविगेट करने की अनुमति देता है। वे आम तौर पर पर्ल, पायथन या सी।

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