আমার ভিমে সমস্যা আছে এবং আমি মনে করি এটি আমার vimrc
ফাইলে থাকতে পারে (বা বলা হয়েছে এটি আমার vimrc
ফাইল হতে পারে )।
আমি কীভাবে এটি যাচাই করব? এটি যদি আমার vimrc
ফাইল হয় তবে সমস্যাটি ঠিক কোথায় রয়েছে তা আমি কীভাবে জানব ?
আমার ভিমে সমস্যা আছে এবং আমি মনে করি এটি আমার vimrc
ফাইলে থাকতে পারে (বা বলা হয়েছে এটি আমার vimrc
ফাইল হতে পারে )।
আমি কীভাবে এটি যাচাই করব? এটি যদি আমার vimrc
ফাইল হয় তবে সমস্যাটি ঠিক কোথায় রয়েছে তা আমি কীভাবে জানব ?
উত্তর:
আপনি প্রথমে যেটি করতে চান তা হ'ল ডিফল্ট সেটিংস দিয়ে ভিম শুরু করা:
vim -u NONE -U NONE -N
-u NONE
আপনার vimrc লোড করা থেকে আটকায় তেজ, -U NONE
আপনার gvimrc লোড থেকে তেজ বাধা দেয়, এবং -N
তেজ বলে নো সামঞ্জস্যপূর্ণ মোড ব্যবহার করতে (এই প্রয়োজন হয় না, কিন্তু অধিকাংশ তেজ ব্যবহারকারী "সামঞ্জস্যপূর্ণ" মোডে ব্যবহার করা হয় না)। মনে রাখবেন যে, NONE
হয় প্রয়োজনীয় সব বড় হাতের অক্ষরে যাবে।
উইন্ডোজে আপনি নতুন শর্টকাট 1 তৈরি করে এই পতাকাগুলি যুক্ত করতে পারেন ।
যদি সমস্যাটি থেকে যায় তবে আপনি জানেন যে এটি আপনার ভিআইএমআরসি-তে কিছু নয় ।
সমস্যা disappears, তাহলে আপনি এখন এটি দ্বারা সৃষ্ট হচ্ছে কিছু আপনার vimrc ফাইলে।
Hurray থেকে! যান এবং আপনার প্রশ্ন জিজ্ঞাসা করুন। আপনি অবশ্যই কোনও ভিআইএমআরসি ফাইল ছাড়াই ভিম শুরু করার চেষ্টা করেছিলেন তা উল্লেখ করে নিশ্চিত হন!
আপনি যদি ইতিমধ্যে না থাকেন তবে আপনি সম্ভবত প্রথমে আপনার ভিএমআরসি ফাইলের একটি ব্যাকআপ কপি সংরক্ষণ করতে চান।
আপনি সম্ভবত পরবর্তী কাজটি করতে চান তা হল প্রথমে সমস্ত প্লাগইন অক্ষম করা; প্লাগইনগুলি ভিমে বেশ কিছুটা পরিবর্তন করতে পারে। যদি এটি সমস্যার সমাধান করে, তবে
কোন প্লাগইনগুলি একে একে একে সক্ষম করে সন্ধানের চেষ্টা করুন। কোন প্লাগইনটি হুবহু সমস্যা সৃষ্টি করে তা সনাক্ত করার পরে, আপনি এই প্লাগইনটির ডকুমেন্টেশনগুলি পড়ে এবং / অথবা এর সাথে ট্যাগযুক্ত একটি প্রশ্ন জিজ্ঞাসা করে এটি ঠিক করতে পারেন plugin-<name>
।
যদি এটি কোনও প্লাগইন না হয় এবং আপনার সমস্যাটি কী কারণে ঘটছে সে সম্পর্কে আপনার কোনও ধারণা নেই, তবে এটি একটি পরীক্ষামূলক এবং ত্রুটি পদ্ধতি। আপনার ভিএমআরসি-তে এক বা একাধিক লাইন মন্তব্য করুন, ভিম শুরু করুন, সমস্যা হয়েছে কিনা তা যাচাই করুন এবং সমস্যাটি না হওয়া পর্যন্ত এই পদ্ধতিটি পুনরাবৃত্তি করুন। এটি করার দ্রুততম উপায় হ'ল:
শেষ পর্যন্ত আপনার একক বিকল্প বা কয়েকটি বিকল্পের সংমিশ্রণ থাকা উচিত যা আপনার সমস্যার কারণ হয়ে দাঁড়ায়। আপনি ব্যবহার করে ভিমে যে কোনও বিকল্প সম্পর্কে আরও জানতে পারেন:
:help 'option_name'
উদ্ধৃতিগুলি এখানে গুরুত্বপূর্ণ, এটি সাধারণত এগুলি ছাড়া কার্যকর হয় তবে কখনও কখনও আপনি এগুলি বাদ দিলে আপনি ভুল পৃষ্ঠাতে শেষ করেন।
সহায়তা পৃষ্ঠাটি পড়ার পরেও যদি আপনি বিভ্রান্ত হন তবে আপনি কোথায় একটি প্রশ্ন জিজ্ঞাসা করতে পারবেন তা জানেন ;-)
আপনি একটি একক প্লাগইন বিছিন্ন, সম্ভবত এটি সম্পর্কে একটি প্রশ্ন জিজ্ঞাসা করতে চান, আপনি যত সম্ভব কম লোড করতে কিন্তু চান এখনো প্লাগইন লোড; আপনি সহজেই ভিমের প্যাকেজ বৈশিষ্ট্য সহ এটি করতে পারেন। এর জন্য ভিওম 8 বা নব্যমের সাম্প্রতিকতম সংস্করণ প্রয়োজন।
একটি নতুন ফাঁকা ডিরেক্টরি তৈরি করুন; আমরা ~/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 উদাহরণস্বরূপ: bit৪ বিট উইন্ডোজে শর্টকাটটি এরকম কিছু দেখাচ্ছে "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
সেই কমান্ডের ঠিক পরে ডিবাগিং শুরু করতে আপনার ভিএমআরসিতে একটি কমান্ড দিন put
উপলব্ধ কমান্ডগুলির তালিকার জন্য Ctrl+ টিপুনd
আরও পড়ুন:
:help debug-scripts
ইতিমধ্যে উল্লিখিত হিসাবে, প্রথমে vim -u NONE -U NONE -N
আপনার ভ্যানিলা ভিম ঠিকঠাক কাজ করছে তা নিশ্চিত করার চেষ্টা করুন ।
তারপরে সাধারণভাবে ভিএম শুরু করুন এবং চেক করুন
:messages
সমস্যার পরে ভিতরে ভিএম, যা সমস্ত সতর্কতা এবং ত্রুটি দেখায়।
অবশেষে নিম্নলিখিত কমান্ডটি দিয়ে ভিএম শুরু করুন
vim -V9logfile.log
যা একটি লগফিল তৈরি করবে logfile.log
, -V9
এটি লগিং স্তর এবং আপনার সমস্যার পুনরুত্পাদন করার চেষ্টা করবে।
আরও একটি টিপ: যতটা সম্ভবত ক্যাভম্যান বলে মনে হচ্ছে, আমি আমার .vimrc এ ইকোম "বার্তা" যুক্ত করতে চাই যা সম্পাদন হচ্ছে এবং কী নয় তা দেখতে।
উদাহরণ স্বরূপ
if executable('ag')
:echom "AG FOUND"
...
endif
এটি যদি আমাকে ব্লকটি কার্যকর করা হচ্ছে কিনা তা দ্রুত দেখতে সহায়তা করে ইত্যাদি next
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
আমার ভিএমআরসি লোডিংয়ের সময়টি খুব ধীর ছিল, প্রায় 400 মিমি এবং আমি কেবল এই লাইনটি সরিয়ে এটি 20 মিমি করে ফেলেছি:
silent !mkdir ~/.config/nvim/backups > /dev/null 2>&1
আপনার বাইরের কমান্ডগুলির মতো কলগুলি না রয়েছে তা নিশ্চিত করুন।
আপনাকে শুরু করার জন্য এখানে খুব সহজ পদ্ধতি রয়েছে is
:source %
বা পুনরায় লোড করুন:so $MYVIMRC