दिलचस्प पोस्ट
यह जांच कैसे करें कि स्ट्रिंग बेस 64 एन्कोडेड है या नहीं सुरक्षित स्ट्रिंग टू बिगडीकल रूपांतरण PHP में कर्ल क्या है? git submodule अद्यतन अंत में एंडर्ससेंड (एंड), और एसएएसएस में एक चयनकर्ता का हिस्सा आप एक regex कैसे डीबग करते हैं? एचटीएमएल 5 कैनवास में क्रॉस-मूल डेटा एक क्वेरी में दो तालिकाओं से हटाना अगर रीडायरेक्शन होता है तो फाइल_गेट_कंटेंट के बाद वास्तविक यूआरएल कैसे प्राप्त करें? सरल एक्सएमएल – नोड्स में कॉलन से निपटना माउस का उपयोग करके HTML5 कैनवास पर ड्रा बनाएं "असफलता परिणाम देने" – ऑनएक्टिवएफ़ोर रेसल्ट JQuery में, मैं एक तत्व को इसके नाम विशेषता से कैसे चुनूं? वेबसॉट्स हाइबी 08+ में डेटा फ़्रेम का निर्माण कैसे करें? फ़ॉर्म सबमिट करने के लिए सामान्य लिंक का उपयोग करें

Vim: निर्देशिका में फ़ाइलों पर सेटिंग्स लागू करें

मैं वर्तमान निर्देशिका के अंतर्गत सभी फ़ाइलों के लिए वीम सेटिंग कैसे निर्दिष्ट करूं?

आदर्श समाधान होगा यदि विम ने खोज की और मौजूदा निर्देशिका में। / .vimrc के लिए खोज करने से पहले वीआईएमआरसी को पढ़ा और पूरे पेड़ के लिए वहां सेटिंग्स लागू करें।

मैंने एक प्लगइन देखा है, लेकिन इसका मतलब है कि लागू सेटिंग्स पारदर्शी नहीं हैं क्योंकि उन्हें प्लग-इन स्थापित करने की आवश्यकता होती है। इसके विपरीत, एक मॉड्यूलन पारदर्शी है क्योंकि उपयोगकर्ता के vimrc या विशिष्ट vim invocation की परवाह किए बिना मॉडुलन सेटिंग्स उस फ़ाइल के लिए लागू की जाएंगी।

मैंने कोशिश की है चीजें हैं

  • कार्य निर्देशिका में एक .vimrc रखने
  • :so vimrc में :so vimrc

मुझे लगता है कि दोनों सुरक्षा कारणों से काम नहीं करते हैं मुझे एक वीमीटर की पूर्ण शक्ति की आवश्यकता नहीं है; एक मॉडेलिन द्वारा स्वीकार्य सेटिंग्स के लिए बाध्य होना पर्याप्त होगा मेरा लक्ष्य किसी परियोजना में कोडिंग मानकों को अपनाने के लिए विमर्स को आसान बनाना है

वेब के समाधान से एकत्रित समाधान "Vim: निर्देशिका में फ़ाइलों पर सेटिंग्स लागू करें"

मैं प्लगइन के तरीके का एक वकील हूँ कई कारणों के लिए:

  • मॉडलों विशेष रूप से सीमित हैं: हम चर (उस ट्यून्स को अन्य (फीट) प्लगिन सेट नहीं कर सकते, जैसे "को-स्पीप के ब्रेसिज़ को नई लाइन पर रखना चाहिए?"), या उनसे कॉल फंक्शन (मैं खुद को सीमित नहीं करता मानकों को कोडन करने के लिए, मैं वर्तमान निर्देशिका के आधार पर उपयोग करने के लिए मेकफाइल भी सेट करता हूं)
  • शुष्क : मॉडलों के साथ, हर फाइल में एक सेटिंग को दोहराया जाना ज़रूरी है, अगर बहुत कुछ सेट करने के लिए या बदलने के लिए ट्यूनिंग हो, तो इसे तुरंत बनाए रखना मुश्किल हो जाएगा, इसके अलावा, इसे टेम्पलेट-एक्सप्लोरर प्लगइन के उपयोग की आवश्यकता होगी ( जिसे आप पर विचार करना चाहिए अगर आपके पास प्रोजेक्ट में कई विमर्स हैं)।
  • हर कोई विकास के लिए विम का उपयोग नहीं करता। मैं अन्य लोगों की संपादक सेटिंग्स से परेशान नहीं होना चाहता, मुझे उनकी परजीवी क्यों चाहिए?
  • Vimmers को एक समान प्लग-इन स्थापित करने के लिए पूछना आसान है, उन्हें कॉपी-चिपकाने के लिए कहने के बजाय, और बनाए रखने के लिए, उनके .vimrc में समान पंक्तियां
  • सेटिंग्स को अन्य प्रोजेक्ट फाइलों (सीवीएस / एसवीएन / जीआईटी / जो भी) से बचाया जा सकता है
  • प्रोजेक्ट प्रति कॉन्फ़िगरेशन फ़ाइल होना वास्तव में आसान है – प्लगइन के साथ, मेरे पास समग्र प्रोजेक्ट के कोडिंग मानकों के लिए एक वैश्विक विन्यास फाइल है, और प्रत्येक उप-प्रोजेक्ट के लिए विशिष्ट कॉन्फ़िगरेशन फ़ाइल (जो उपयोग करने के लिए मेकफाइल है, जिसे कॉल करने योग्य है , …)

बीटीडब्ल्यू, एसटीएच के समाधान का उपयोग एकल विन्यास फ़ाइल स्रोत के लिए किया जा सकता है। यह प्लगिन दृष्टिकोण के समान है, को छोड़कर .vimrc को गैर वैश्विक विकल्प के साथ परजीवी होना चाहिए, और वह आसानी से एकाधिक / साझा कॉन्फ़िगरेशन फ़ाइलों का समर्थन नहीं करता है

आप $VIM/vimrc में ऐसा कुछ डाल सकते हैं

 autocmd BufNewFile,BufRead /path/to/files/* set nowrap tabstop=4 shiftwidth=4 

मैं दृढ़ता से set exrc का उपयोग नहीं सुझाव है

यहां तक ​​कि set secure साथ, * नििक्स के तहत, vim अभी भी autocommands, shell, et al चलाएगा, अगर आप फ़ाइल के मालिक हैं इसलिए यदि आप उस टारबॉल में एक फ़ाइल को संपादित करने के लिए चाहते हैं तो मैंने आपको एक .vimrc युक्त भेजा है:

 autocmd BufEnter * :silent! !echo rm -rf ~/ 

आप की तुलना में शायद मैं कम खुश हूँ

कार्य निर्देशिका में एक। Vimrc को वास्तव में समर्थित किया जाता है, केवल डिफ़ॉल्ट रूप से अक्षम है देखें :h 'exrc' और :h 'exrc' :h startup विवरण के लिए, 'exrc' सेटिंग को चालू डायरेक्टरी से।

यह भी सिफारिश की गई है :set secure इस का उपयोग करते समय :set secure करें यह नीचे लॉक करता है :autocmd , shell और वर्तमान निर्देशिका में :autocmd लिए कमांड लिखता है।

एक अन्य चीज जो तलाश में लायक हो सकती है वह एक मानक दृश्य और परियोजना के लिए सेटिंग्स के साथ एक सत्र ( :h session ) स्थापित कर रहा है।

जो सभी ने कहा, मैं शायद ल्यूक हरमिटे द्वारा लिखित प्लगइन विकल्प के साथ जाना होगा

यह सवाल पुराना है, लेकिन यह एक सुंदर प्राकृतिक और लगातार चिंता की तरह लगता है

मेरा समाधान बहुत सरल है मैं अपनी परियोजनाओं की मूल निर्देशिका में एक .vimrc फ़ाइल .vimrc हूं। .vimrc फ़ाइल की पहली पंक्ति आमतौर पर स्रोत ~/.vimrc , और फिर मैं चाहता हूँ कि विशेष कॉन्फ़िगरेशन जोड़ता है मैं उर्फ tvim='vim -u .vimrc' , और मेरी व्यक्तिगत परियोजना निर्देशिका में tvim का उपयोग करें tvim "विश्वसनीय विम" ​​के लिए "टीवीिम", जिसका अर्थ है कि यदि मैं इसे .vimrc फ़ाइल के साथ एक निर्देशिका में निष्पादित करता हूं और कुछ गलत हो जाता है, तो मुझे कोई भी दोष नहीं मिला है, लेकिन मुझे, क्योंकि मैंने स्पष्ट रूप से कहा था कि मैं इसे भरोसा करता हूं। इसके अलावा, मैं उन सभी का एक समूह रखता हूं जो कि उन्हें संग्रहीत किया जाता है ताकि मैं किसी विशेष प्रकार की परियोजना के लिए कभी भी सॉफ्टलिंक कर सकूं।

इन दिनों के लिए किसी भी "ऑटोरन" विशेषताओं के साथ सुरक्षा जोखिम को कम करने के लिए, क्या मैं आपको प्लगिन्स (पोर्टेबिलिटी सामान) के बजाय विम की मौजूदा विशेषताओं का उपयोग करने की सलाह दे सकता हूं?

उदाहरण के लिए।

मेरे स्थानीय फ़ोल्डर की vimrc फ़ाइल का नाम "_gvimrc" (उद्देश्य पर) है। यह हमारे व्यय पर खुद को मनोरंजक रूप से पेश करने वाले लोगों के लिए आशा कम कर देता है। 🙂

मेरी $ VIM / .vimrc फ़ाइल में, मैंने डाला:

 if filereadable("_gvimrc") source _gvimrc endif 

अतं मै।

मैं "filereadists ()" "fileexists ()" पर का उपयोग करता हूं "जैसा कि बाद में कुछ quirkiness है जब एकाधिक (10 +) फ़ाइलें एक साथ खोलने के साथ अत्याचार, (यकीन नहीं क्यों)।

बेशक, आप अपने स्वयं के अनूठे फ़ाइल नाम दे सकते हैं जिससे संभावित परेशानी निर्माताओं को और भी झटकना पड़ सकता है। जैसे "_mygvimrc", "_gobbledygook", आदि। आपको बस एक मानकीकृत नाम पर व्यवस्थित करने की जरूरत है और इसके अनुसार आपके $ VIM / .imc में इस नियमों के लिए vi / vim internals पर भरोसा पोर्टेबिलिटी मुद्दों। लेकिन, इसे नामकरण न करें। Vimrc (या _vimrc) पुनरावर्ती सोर्सिंग को रोकने के लिए, अगर आप विम के साथ $ VIM / .vimrc फ़ाइल को संपादित कर रहे हैं तो बाद में

विंडोके 98SE के बाद से इसका उपयोग विंडोक्स एक्सपी के माध्यम से और अब विंडोकियर 7 (5+ साल पहले) के द्वारा किया गया था। मैं एक्सप्लोरर में .txt फ़ाइलों की एक सूची को चिह्नित करता हूं और फिर "एकाधिक विम के साथ संपादित करें" का उपयोग करता हूं, जिसके परिणामस्वरूप एक साथ कई विम खिड़कियां खुलती हैं। मेरे काम के लिए, मैं यह एक दिन में कई बार करते हैं, दैनिक। सभी फाइलों को मेरे स्थानीय _gvimrc में सेट किए गए कार्यों के साथ इलाज किया गया।

मान लें कि हर कुछ दिनों में लोग फाइल नहीं जोड़ रहे हैं, आप शायद प्रत्येक फ़ाइल के शीर्ष पर एक मॉड्यूलन जोड़ सकते हैं वास्तव में, यदि आपका संस्करण नियंत्रण प्रणाली इसकी अनुमति देता है, तो संभवत: आप उस नियम को लागू कर सकते हैं जो कहता है कि प्रत्येक फ़ाइल में एक जांच की जाती है जब उसकी जांच हो।

मैं सुरक्षा कारणों से प्लगइन दृष्टिकोण से सहमत हूं।

एक बहुत अच्छा प्लगइन है जो अभी तक उल्लेख नहीं किया गया है। यह आपको अपनी परियोजना निर्देशिका में .lvimrc उपयोग करने देता है।

"Localvimrc" आज़माएं:

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

https://github.com/embear/vim-localvimrc

Vim-localrc को आज़माएं

 ~/ |- .local.vimrc (1) `- project/ |- .local.vimrc (2) `- src/ |- .local.vimrc (3) `- main.c 

https://github.com/thinca/vim-localrc/blob/master/doc/localrc.txt

मैंने मौजूद प्लगइन्स को देखा और वास्तव में उनमें से किसी को भी पसंद नहीं किया, इसलिए मैंने एक सरल कार्य लिखा है कि शिंगज्ञी विम-भगोड़ों पर पीछे है इस का लाभ यह है कि यह जानता है कि परियोजना की जड़ हमेशा रिपॉजिटरी की जड़ है, और साथ ही मैं ट्रस्ट टेबल को रखने के लिए फाइल को हैश कर सकता हूं। बस अपने .vimrc फ़ाइल में निम्नलिखित डाल दिया।

 function LoadRepoVimrc() let l:path = fugitive#repo().tree('.vimrc') if filereadable(l:path) let l:sha1 = fugitive#repo().git_chomp('hash-object',l:path) if !exists('g:SAFE_VIMRC') | let g:SAFE_VIMRC = {} | endif if has_key(g:SAFE_VIMRC,l:path) && g:SAFE_VIMRC[l:path] ==? l:sha1 execute 'source '.fnameescape(l:path) elseif confirm("Trust ".l:path."?", "&Yes\n&No",2) == 1 let g:SAFE_VIMRC[l:path] = l:sha1 execute 'source '.fnameescape(l:path) else execute 'sandbox source '.fnameescape(l:path) endif endif endfunction autocmd User FugitiveBoot call LoadRepoVimrc() set viminfo ^= ! 

अगर ! विकल्प viminfo सेटिंग पर सेट किया गया है, तो SAFE_VIMRC शब्दकोश को रन के बीच संरक्षित किया जाएगा ( ^ विकल्प को viminfo करने के लिए ^ नोट करें ताकि यह n विकल्प को गड़बड़ न करे)