এটি একটি পুরানো প্রশ্ন, তবে আমি একেবারে এবং তারপরেই বিবর্ণ আশা নিয়ে এক ঝলক নিয়ে ফিরে আসছি, এই ভেবে যে একদিন আমাকে ভিমের মধ্যে নিখুঁত স্বতঃপূরণ দেওয়ার জন্য প্লাগইনের সঠিক সংমিশ্রণটি খুঁজে পাব। অনুসন্ধান অব্যাহত রয়েছে, তবে বেশ কয়েক বছর ধরে আমি এই গবেষণাটি করেছি।
প্রথমত, আপনার অবশ্যই বুঝতে হবে ভিম কোনও কোড সম্পাদক নয়, একটি পাঠ্য সম্পাদক। কোড সম্পাদক, আইডিইএস হ'ল সরঞ্জামগুলির জেটব্রেইনস স্যুট, ভিজ্যুয়াল স্টুডিও কোড, ইক্লিপস ইত্যাদি tools
ভিম মৌলিকভাবে কোডটি সঠিকভাবে "স্বয়ংক্রিয়ভাবে সম্পূর্ণ" করতে পারে না। স্বতঃসম্পূর্ণতার জন্য আপনার উত্স কোডটি অন্তর্নিম্ন করা এবং এএসটি বিশ্লেষণ করা প্রয়োজন। বিবেচনা করুন যে 2016 সালে ভিম 8 মুক্তি না হওয়া পর্যন্ত ভিম অ্যাসিঙ্ক্রোনাস অপারেশন করতে পারবেন না, তাই কোনও ভিম প্লাগইনে যে কোনও ধরণের কোড ইন্ট্রোস্পেকশন সফ্টওয়্যার চালানোর চেষ্টা করা দুঃস্বপ্ন হতে পারে। এটি না করার জন্য এটি ভিম বাস্তুতন্ত্রের ইতিহাসে বেকড। এবং যেগুলি চেষ্টা করে তারা সকলেই যেমন টার্ন ফর ভিমের মতো, এটি ব্যবহার করার জন্য দুঃস্বপ্ন।
একটি পাঠ্য সম্পাদক যা করতে পারেন তা হ'ল স্নিপেটস এবং একই শব্দ / লাইন / ইত্যাদি সম্পূর্ণরূপে এটি জানেন। আপনি যদি স্ব-পরিপূর্ণ কোডটি খুঁজছেন তবে আপনার কোনও পাঠ্য সম্পাদক নয়, একটি কোড সম্পাদক ব্যবহার করা উচিত।
এগুলি আপনার বিকল্পগুলি, যার মধ্যে আমি সমস্ত চেষ্টা করেছি:
দুটি দরকারী কীবোর্ড শর্টকাটগুলি হ'ল Ctrl- nযা কেবলমাত্র আপনার বর্তমান খোলা বাফারগুলির ভিত্তিতে কোনও শব্দ স্বয়ংক্রিয়ভাবে পূর্ণ করবে (কোনও কোড অন্তর্মুখী নয়), এবং Ctrl- xCtrl- lআপনি যদি কোনও সদৃশ করতে চান তবে কোডের একটি সম্পূর্ণ লাইন স্বয়ংক্রিয়ভাবে পূরণ করবে। আপনি সম্ভবত জানেন Ctrl- xCtrl- f, যা বর্তমানের তুলনায় পথ সহ একটি ফাইলের নাম স্বয়ংক্রিয়ভাবে পূর্ণ করবে :pwd
। প্যাটার্ন-সম্পূর্ণ যদি আপনি দিয়ে অনুসন্ধান না প্লাগইন আস্তে উপযোগী হতে পারে /\v
।
- , - দ্বারা তৈরি ট্রি ভিম " ওমনিকম্প্লেশন " এ নির্মিত - ( এইটাই ভিম লেখকরা আপনাকে প্রতিবার টাইপ করতে চান) পাশাপাশি ভাষা নির্দিষ্ট প্লাগইনগুলির একগুচ্ছ উপস্থিত থাকে। আপনি করতে পারেন একটি ফাইলে যদি আপনি ইতিমধ্যে Omnicompletion আপ তেজ দ্বারা আপনার পছন্দের ফাইলের মধ্যে সেট করেছেন দেখতে।CtrlxCtrlo:echo &omnifunc
AutoComplPop স্বয়ংক্রিয়ভাবে টাইপ Omnicompletion মেনু উপরে খোলার জন্য।
সুপারটাব যা আপনাকে ভিমেরTab অন্তর্নির্মিত সম্পূর্ণরূপে ট্রিগার করতে টিপতে দেয় ।
নিওকম্প্লাচি যা কীওয়ার্ড সমাপ্তি (কীভাবে এটি ভিমের সম্পূর্ণরূপে নির্মিত তা আলাদা নয়), একটি জটিল .vimrc
সেটআপ এবং স্নিপেট সমাপ্তির জন্য নিওস্নিপেট ।
ট্যাগ ফাইলগুলি থেকে সম্পূর্ণতা আহরণের জন্য একটি দানব সংমিশ্রণ exuberant-ctags
এবং DoctorJS
(একটি মজিলা প্রকল্প যা এক বছর ধরে মারা গেছে), ট্যাগবার এবং একটি বাড়ির মধ্যে প্রাপ্ত জিনিস
স্নিপমেট , স্নিপেটের সাথে একটি বেসিক ট্যাগ সমাপ্তি প্লাগইন এবং কীভাবে স্নিপেটগুলি যুক্ত করতে হয় তা নিজেরাই নির্ধারণ করুন, কারণ এটি কিছুটা জটিল।
UltiSnips এর সাথে UltiSnips- স্নিপেটগুলি যা উপরের স্নিপেটগুলির চেয়ে পৃথক ।
টার্ন ফর ভিমের জন্য , একটি প্রতিশ্রুতিবদ্ধ গ্রন্থাগার যা সঠিক স্বতঃসম্পূর্ণ হওয়ার জন্য প্রকৃত কোড অন্তঃসংশোধন করে। তবে এটি বগি, খুব ধীরগতির, মেমরি ফাঁস রয়েছে যা ভিমকে বিধ্বস্ত করবে এবং সম্ভবত এটি পরিত্যক্ত।
YouCompleteMe , স্নিপেট সমাপ্তির জন্য হোম-বর্ধিত ফাংশন সহ, পটভূমিতে একটি সার্ভার চালিত এমন একটি अस्पष्ट হিসাবে আপনার ধরণের সমাপ্তি।
একলিম - ব্যাকগ্রাউন্ডে একটি Elpipse সার্ভার চালানোর একটি দুর্দান্ত প্রচেষ্টা এবং ভিমকে উড়ানের দিকে আত্ম - সম্পন্ন করতে বলুন। এটি টার্নের পাশাপাশি কাজ করে।
শেষ অবধি , টাইপ করার সময় স্বয়ংক্রিয়ভাবে ট্যাগ এবং প্রথম বন্ধ বন্ধ করার জন্য ক্লোসেট্যাগ বা ডিলিমেটমেট বা অটোক্লোজ বা একটি স্বল্প বয়স্ক কলাগ্রাম
এই তালিকার প্রায় প্রতিটি প্লাগইন এই তালিকার প্রায় প্রতিটি প্লাগইনের সাথে বিরোধ করবে will
YouCompleteMe এই প্যাকের শীর্ষস্থানীয় বলে মনে হচ্ছে তবে আমি ট্যাগ সমাপ্তির সাথে এটি যথাযথভাবে কাজ করতে সক্ষম হইনি এবং এর কোড-আত্ম-পরিপূরণ এখনও শক্তিশালী প্রমাণ করতে পারেনি।
আমার ব্যক্তিগত মতামত হ'ল ভিম স্বতঃপূরণ বিশ্বের বর্তমান অবস্থা খারাপ অবস্থায় আছে। ছোট প্রকল্পগুলির জন্য আপনি উপরের সমাধানগুলির একটি ব্যবহার করে ভাল হতে পারেন। আপনি যদি একটি সাধারণ এপিআই নিয়ে কাজ করে থাকেন তবে বেশিরভাগ ক্ষেত্রে আপনার মাথায় রাখতে পারেন, নন-কোড-অন্তঃসংশোধন সমাপ্তি সম্ভবত ঠিক আছে। আপনি একটি বড় প্রকল্পের সঙ্গে ডিল করা হয়, বা টাইপ নিরাপত্তা সুবিধার প্রয়োজন যখন প্রোগ্রামিং, একটি পূর্ণাঙ্গ আইডিই (যদি অন্ধকার , ভিসুয়াল স্টুডিও , WebStorm ) আপনি অনেক তেজ চেয়ে হবে ভাল অনুসারে যাচ্ছে।
অবশ্যই একটি আইডিইর সর্বনিম্নতা হ'ল আপনার হাতে আর ভিমের শক্তি থাকবে না। আমি একটি একক আইডিই ব্যবহার করি নি যা একটি গ্রহণযোগ্য ভিম মোড আছে।
ভিপকে টাইপ করা সি-জাতীয় ভাষাগুলির প্রতি মাঝারি ভাষার পক্ষপাত রয়েছে এবং অন্যথায় প্রত্যাশা রয়েছে যে কোনও ভাষা নির্দিষ্ট বৈশিষ্ট্য ব্যবহারকারীরা প্লাগইন হিসাবে যুক্ত করবেন। দুর্ভাগ্যক্রমে, এটি একটি বিভক্ত অটোকম্প্লেশন ইকোসিস্টেমের দিকে নিয়ে গেছে। কিছু বিকল্প শালীন, তবে কিছুই নিখুঁত নয় এবং খুব কমই নেতৃত্বাধীন / সেরা অনুশীলন রয়েছে।
let g:acp_behaviorSnipmateLength=-1
দেখুন:help autocomplpop
) আপনি আপনার .vimrc এ যুক্ত করার কথা, আপনি কি এটি যুক্ত করেছিলেন?