मुझे विम में समस्या है, और मुझे लगता है कि यह मेरी vimrc
फ़ाइल में हो सकता है (या कहा गया है कि यह मेरी vimrc
फ़ाइल हो सकती है )।
मैं इसे कैसे सत्यापित करूं? यदि यह है मेरी vimrc
फ़ाइल, मुझे कैसे पता जहां कर बिल्कुल समस्या है?
मुझे विम में समस्या है, और मुझे लगता है कि यह मेरी vimrc
फ़ाइल में हो सकता है (या कहा गया है कि यह मेरी vimrc
फ़ाइल हो सकती है )।
मैं इसे कैसे सत्यापित करूं? यदि यह है मेरी vimrc
फ़ाइल, मुझे कैसे पता जहां कर बिल्कुल समस्या है?
जवाबों:
पहली बात यह है कि आप डिफ़ॉल्ट सेटिंग्स के साथ विम को शुरू करना चाहते हैं:
vim -u NONE -U NONE -N
-u NONE
अपने vimrc लोड करने से रोकता है विम, -U NONE
अपने gvimrc लोड करने से विम रोकता है, और -N
विम बताता है कोई संगत मोड का उपयोग करने के लिए (यह आवश्यक नहीं है, लेकिन सबसे विम उपयोगकर्ताओं 'उपयुक्त' मोड के लिए इस्तेमाल नहीं कर रहे हैं)। ध्यान दें कि NONE
है की आवश्यकता सभी टोपियां में किया जाना है।
विंडोज में आप एक नया शॉर्टकट 1 बनाकर इन झंडों को जोड़ सकते हैं ।
यदि समस्या बनी रहती है, तो आप जानते हैं कि यह आपके vimrc में कुछ नहीं है।
यदि समस्या गायब हो जाती है, तो अब आप अपनी vimrc फ़ाइल में कुछ के कारण होते हैं ।
हुर्रे! जाओ और अपना प्रश्न पूछो। यह उल्लेख करना सुनिश्चित करें कि आपने विम फ़ाइल के बिना विम शुरू करने का प्रयास किया है!
यदि आप पहले से ही नहीं है, तो आप शायद अपनी vimrc फ़ाइल की बैकअप प्रतिलिपि पहले सहेजना चाहते हैं।
अगली चीज़ जो आप शायद करना चाहते हैं, पहले सभी प्लगइन्स को अक्षम कर दें; प्लगइन्स विम में काफी बदल सकते हैं। यदि यह समस्या को ठीक करता है, तो यह पता लगाने की कोशिश करें कि
कौन सा प्लगइन उन्हें एक-एक करके फिर से सक्षम कर रहा है। यह पता लगाने के बाद कि कौन सा प्लगइन वास्तव में समस्या का कारण बनता है, आप इस प्लगइन के प्रलेखन को पढ़कर और इसे ठीक कर सकते हैं, और / या के साथ टैग किए गए प्रश्न पूछकर plugin-<name>
।
यदि यह एक प्लगइन नहीं है, और आपके पास कोई विचार नहीं है कि आपकी समस्या क्या है, तो यह एक परीक्षण-और-त्रुटि प्रक्रिया है। अपने vimrc में एक या एक से अधिक लाइनें लिखें, Vim शुरू करें, जांचें कि क्या समस्या होती है, और इस प्रक्रिया को तब तक दोहराएं जब तक समस्या होना बंद न हो जाए। ऐसा करने का सबसे तेज़ तरीका है:
अंत में आपके पास एक एकल विकल्प या कुछ विकल्पों का एक संयोजन होना चाहिए जो आपकी समस्या का कारण बनता है। आप का उपयोग करके विम में किसी भी विकल्प के बारे में अधिक जानकारी प्राप्त कर सकते हैं:
:help 'option_name'
यहां उद्धरण महत्वपूर्ण हैं, यह आमतौर पर उनके बिना काम करता है, लेकिन कभी-कभी आप गलत पृष्ठ पर समाप्त होते हैं यदि आप उन्हें छोड़ देते हैं।
यदि आप सहायता पृष्ठ को पढ़ने के बाद भी भ्रमित हैं, तो आप जानते हैं कि प्रश्न कहाँ पूछना है ;-)
यदि आप किसी एकल प्लगइन को अलग करना चाहते हैं, तो शायद इसके बारे में एक सवाल पूछना है, आप जितना संभव हो उतना कम लोड करना चाहते हैं लेकिन फिर भी प्लगइन लोड करना चाहते हैं ; आप आसानी से विम के पैकेज सुविधा के साथ ऐसा कर सकते हैं। इसके लिए Vim 8 या Neovim के हालिया संस्करण की आवश्यकता है।
एक नई खाली निर्देशिका बनाएं; हम ~/plugin
इस उदाहरण में पथ का उपयोग करेंगे । अब प्लगइन को नियमित pack/plugins/start/$name
निर्देशिका में रखें। उदाहरण के लिए:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
test-vimrc
निम्नलिखित सामग्री के साथ एक फ़ाइल बनाएं ; इस यह सुनिश्चित करेंगे कि विम से प्लग-इन लोड होगा ~/plugin
निर्देशिका और न~/.vim
निर्देशिका:
set nocompatible
set packpath=~/plugin,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/plugin/after
packloadall!
syntax on
filetype plugin indent on
इसके साथ विम शुरू करें:
vim -U NONE -u ~/test-vimrc
अब आपके पास केवल इस एकल प्लगइन के साथ एक न्यूनतम vimrc है।
फुटनोट
1 उदाहरण के लिए: 64 बिट विंडोज पर, शॉर्टकट कुछ इस तरह दिखाई देगा "C:\Program Files (x86)\Vim\vim74\vim.exe" -u NONE -U NONE -N
:। इसे बनाने के लिए, जहाँ आप शॉर्टकट चाहते हैं, फ़ाइल एक्सप्लोरर में राइट क्लिक करें, फिर नया -> शॉर्टकट चुनें और शॉर्टकट टेक्स्ट पेस्ट करें। यदि आपका विम किसी अन्य स्थान पर स्थापित है, तो आपको विम पथ को बदलने की आवश्यकता हो सकती है।
-U NONE
यदि आपके पास है, तो आपको इसकी आवश्यकता नहीं है -u NONE
।
-D
डिबगिंग के लिए विशेष रूप से विम पैरामीटर है जो किसी स्क्रिप्ट से पहली कमांड निष्पादित करने के बाद डीबगिंग मोड में जाएगा।
उदाहरण के लिए डिबग मोड में विम को बिना किसी प्लग इन के चलाने के लिए:
vim --noplugin -D
अगली पंक्ति को पार्स करने के लिए टाइप n
/ next
दबाए रखें Enter।
और cont
या q
वापस लिए जाने के लिए vim
इंटरफेस।
यदि आप GUI संस्करण का उपयोग कर रहे हैं, तो gui
उस कमांड के ठीक बाद डिबगिंग शुरू करने के लिए अपने vimrc में एक कमांड डालें ।
उपलब्ध आदेशों की सूची के लिए Ctrl+ दबाएँd
अधिक पढ़ें:
:help debug-scripts
जैसा कि पहले ही उल्लेख किया गया है, पहले vim -u NONE -U NONE -N
यह सुनिश्चित करने का प्रयास करें कि आपका वेनिला विम ठीक काम कर रहा है।
फिर सामान्य रूप से शुरू करें और जांचें
:messages
समस्या के बाद अंदर से, जो सभी चेतावनियों और त्रुटियों को दिखाएगा।
अंत में निम्नलिखित कमांड के साथ विम शुरू करें
vim -V9logfile.log
जो लॉगफ़ाइल नामक एक लॉग बनाएगा logfile.log
, -V9
लॉगिंग स्तर है और आपकी समस्या को पुन: उत्पन्न करने का प्रयास करता है।
एक और टिप: गुफा के रूप में जैसा कि यह प्रतीत हो सकता है, मुझे जोड़ने के लिए पसंद है: echom "संदेश" मेरे .vimrc को देखने के लिए कि क्या निष्पादित किया जा रहा है और क्या नहीं है।
उदाहरण के लिए
if executable('ag')
:echom "AG FOUND"
...
endif
यह मुझे जल्दी से यह देखने में मदद करता है कि क्या ब्लॉक को निष्पादित किया जा रहा है, आदि संदेश कंसोल पर मुद्रित हो जाएगा जब आप अगली बार शुरू करते हैं।
echom
एक और दिलचस्प कमांड का उपयोग करते हैं :messages
, तो संदेशों के पूर्ण लॉग को प्राप्त करने के लिए है। स्टार्टअप के बाद उन्हें देखना कभी-कभी उपयोगी हो सकता है।
एक चीज जो मुझे मिली है वह है चर का संग्रह रखना जो आपके कुछ हिस्सों को टॉगल करता है .vimrc
ताकि आप सामान को कमेंट किए बिना उसे निष्क्रिय या निष्क्रिय कर सकें। यह आपको अपने संगठन के बारे में सोचने के लिए मजबूर करने का सुखद दुष्प्रभाव भी है .vimrc
।
" feature toggles in vimrc
let g:vimrc_feat_pathogen = 1
let g:vimrc_feat_core_minimal = 1
let g:vimrc_feat_matchit = 1
let g:vimrc_feat_options = 1
let g:vimrc_feat_colors_and_highlight = 1
let g:vimrc_feat_key_rebinding_arpeggio = 1
let g:vimrc_feat_key_rebinding = 1
let g:vimrc_feat_autocommand_group = 1
let g:vimrc_feat_custom_definitions = 1
let g:vimrc_feat_load_opam = 1
यहाँ एक अनुभाग का उदाहरण दिया गया है if
:
if g:vimrc_feat_core_minimal
set nocompatible
filetype plugin indent on
syntax on
endif
मेरा vimrc लोडिंग समय बहुत धीमा था, लगभग 400ms, और मैंने इसे केवल इस लाइन को हटाकर 20ms तक घटा दिया:
silent !mkdir ~/.config/nvim/backups > /dev/null 2>&1
सुनिश्चित करें कि आपके पास बाहरी आदेशों की तरह कॉल नहीं है।
यहां आपको आरंभ करने के लिए एक सरल प्रक्रिया है।
:source %
या चलाकर:so $MYVIMRC