ভিমে স্বতঃপূরণ


257

সংক্ষেপে, আমি একটি জন্য অনুসন্ধান করছি কাজ তেজ সম্পাদকের জন্য স্বয়ংক্রিয়ভাবে বৈশিষ্ট্য। আমি এর আগে যুক্তি দিয়েছিলাম যে ভিম সম্পূর্ণরূপে লিনাক্সের অধীনে কোনও আইডিই প্রতিস্থাপন করে এবং এটি সত্য হলেও এটির একটি গুরুত্বপূর্ণ বৈশিষ্ট্য নেই: স্বতঃপূরণ।

আমি Ctrl+ N, এক্সবিউরেন্ট Ctags ইন্টিগ্রেশন , ট্যাগলিস্ট , সিপিসম্পূর্ণ এবং ওমনিসিপি কমপ্লিট সম্পর্কে জানি । হায় আফসোস, এগুলির কোনওটিই "কাজ করা স্বতঃপূরণ:" এর বর্ণনা অনুসারে ফিট করে না

  • Ctrl+N যদি আপনি বানান কীভাবে ভুলে গেছেন তবে class, বা (দুর্দান্ত) চমৎকারভাবে কাজ করে while। আচ্ছা ভালো.
  • Ctags আপনাকে প্রাথমিক পাঠ দেয় তবে প্রচুর ঘাটতি রয়েছে।
  • ট্যাগলিস্ট কেবল একটি Ctags মোড়ক এবং এর মতো এর বেশিরভাগ ত্রুটিগুলি উত্তরাধিকার সূত্রে প্রাপ্ত (যদিও এটি তালিকাভুক্তির তালিকাতে ভাল কাজ করে )।
  • সিপিসম্পূর্ণটি কেবল প্রতিশ্রুতি অনুযায়ী কাজ করে না, এবং আমি কী ভুল করেছি তা নির্ধারণ করতে পারি না, বা যদি এটি সঠিকভাবে "কাজ করে" থাকে এবং সীমাবদ্ধতা ডিজাইন অনুসারে হয়।
  • ওমনিসিপকম্পল্টে সিপিপম্পলার মতো একই সমস্যা রয়েছে বলে মনে হচ্ছে, স্বয়ংক্রিয়ভাবে সমাপ্তি সঠিকভাবে কাজ করে না। অতিরিক্তভাবে, tagsফাইলটি আবারও ম্যানুয়ালি আপডেট করা দরকার।

আমি এই বিষয়টি সম্পর্কে সচেতন যে এমনকি আধুনিকও নয়, পূর্ণ-বর্ধিত আইডিইগুলি ভাল সি ++ কোড সমাপ্তির প্রস্তাব দেয়। এই কারণেই আমি এখন পর্যন্ত এই অঞ্চলে ভিমের অভাব মেনে নিয়েছি। তবে আমি মনে করি কোড সমাপ্তির একটি মৌলিক স্তর জিজ্ঞাসা করার মতো খুব বেশি নয়, এবং বাস্তবে উত্পাদনশীল ব্যবহারের জন্য প্রয়োজনীয় required সুতরাং আমি এমন কিছু সন্ধান করছি যা কমপক্ষে নিম্নলিখিত জিনিসগুলি সম্পাদন করতে পারে।

  • সিনট্যাক্স সচেতনতা । সিপিপি অসম্পূর্ণ প্রতিশ্রুতি (তবে আমার জন্য সরবরাহ করে না), সঠিক, স্কোপ-সচেতন নীচে স্বতঃপূরণ:

    variableName.abc
    variableName->abc
    typeName::abc

    এবং সত্যই, অন্য যে কোনও কিছুই সম্পূর্ণ অকেজো।

  • Configurability । উত্স ফাইলগুলি কোথায় রয়েছে তা আমাকে (সহজেই) নির্দিষ্ট করতে হবে এবং তাই স্ক্রিপ্টটি এর থেকে স্বয়ংক্রিয়ভাবে সমাপ্তির তথ্য পায় gets আসলে, আমি আমার ডিরেক্টরিতে একটি মেকফাইল পেয়েছি যা প্রয়োজনীয় অন্তর্ভুক্ত পাথগুলি নির্দিষ্ট করে। গ্রহনটি সেখানে পাওয়া তথ্যের ব্যাখ্যা করতে পারে, কেন কোনও ভিম ​​স্ক্রিপ্টও নয়?

  • আপ-টু ডেটনেস । যত তাড়াতাড়ি আমি আমার ফাইলে কিছু পরিবর্তন করি, আমি চাই এটি স্বয়ংক্রিয়ভাবে সমাপ্তি এটি প্রতিবিম্বিত করে। আমি ম্যানুয়ালি ট্রিগার করতে চাই নাctags (বা তুলনামূলক কিছু)। এছাড়াও, পরিবর্তনগুলি বর্ধনশীল হওয়া উচিত , অর্থাত্ আমি যখন কেবল একটি ফাইল পরিবর্তন করেছি তখন পুরো ডিরেক্টরি গাছটিকে আবার পার্স করার জন্য এটি সম্পূর্ণ অগ্রহণযোগ্যctags (যা বিশাল হতে পারে)।

আমি কি কিছু ভুলে গেছি? আপডেট করতে নির্দ্বিধায়।

আমি বেশ কয়েকটি কনফিগারেশন এবং / বা টিঙ্কারিংয়ের সাথে আরামদায়ক তবে আমি স্ক্র্যাচ থেকে কোনও সমাধান প্রোগ্রাম করতে চাই না, এবং আমি ভিম স্ক্রিপ্টগুলি ডিবাগ করতেও ভাল নই।

একটি চূড়ান্ত দ্রষ্টব্য, আমি জাভা এবং সি # এর জন্য সত্যই অনুরূপ কিছু চাই তবে আমার ধারণা ctagsএটির জন্য খুব বেশি আশা করা যায়: কেবল কোড ফাইলগুলি পার্স করুন এবং জাভা এবং সি # উভয়ই বিশাল, প্রাক-কম্পাইলযুক্ত ফ্রেমওয়ার্ক রয়েছে যাতে সূচীকরণের প্রয়োজন হবে। দুর্ভাগ্যক্রমে, আইডিইবিহীন .NET বিকাশ করা সি ++ এর চেয়ে আরও অনেক বেশি পিআইটিএ।


4
আপনি এই প্রশ্নটি জিজ্ঞাসা করে অনেক দিন হয়েছে, অবশেষে আপনি একটি ভাল খুঁজে পেয়েছেন? আমি জিজ্ঞাসা করছি কারণ আমি কোনও গ্রহণযোগ্য উত্তর দেখতে পাচ্ছি না। ব্যক্তিগতভাবে যদিও আমাকে স্বীকার করতে হবে আমি আমার ভেরিয়েবলগুলি / ফাংশনগুলির উপসীকরণের জন্য অবলম্বন করেছি। উদাহরণস্বরূপ, এগুলি সমস্তই শুরু হয় sh(যার অর্থ এটি আমার লাইব্রেরিতে রয়েছে) এবং আমার ক্লাসটির সংক্ষিপ্তকরণ অনুসরণ করে। উদাহরণস্বরূপ shPজন্য Parserবর্গ। তারপরে আপনাকে যা করতে হবে তা shPহ'ল সিটিআরএল + পি (বা আপনি চাইলে সিটিআরএল + এন) টিপুন এবং ক্লাসের সদস্যদের সর্বশেষ ব্যবহার থেকে প্রথম (অথবা সিটিআরএল + এন হলে প্রথমে
শাহবাজ

4
@ শাহবাজ আসলে, আমি নিশ্চিত যে এই মুহুর্তে এখন পর্যন্ত পর্যাপ্ত কোনও ভাল সমাধান নেই। clang_completeপ্রযুক্তিগতভাবে সর্বাধিক সাউন্ড তবে ফলাফলগুলি এবং আংশিক সংকলনের ক্যাশিংয়ের অভাবের কারণে প্রতিরোধমূলকভাবে ধীর। আমাকে স্বীকার করতে হবে যে আমি সমস্ত জবাব চেষ্টা করে দেখিনি কারণ কারও কারও কাছে বিশৃঙ্খল, সময়সাপেক্ষ সেটআপ দরকার। আমি এখন একটি ব্যবহারযোগ্য প্লাগইনটির জন্য আমার দম ধরেছি যে অবশেষে ঝনঝন বিকাশকারীদের সি ++ উত্স থেকে এটিএসটি তৈরি করতে দেয় (এখন অবধি, সি ++ এর জন্য ভাল কোনও ভাল পার্সার ছিল না)।
কনরাড রুডল্ফ

2
আপনি কি clang_completeসম্প্রতি চেষ্টা করেছেন? এটি libclangএখন ক্যাশিংয়ের সাথে ব্যবহার করতে পারে এবং তাই দ্রুত হওয়া উচিত।
জান লারেস

@ জান তথ্যের জন্য ধন্যবাদ। আমি যখন সর্বশেষে এটি চেষ্টা করেছি, তখন লাইব্ল্যাং সমর্থনটি স্কেচি ছিল। সময় পেলে আমার আবার চেষ্টা করা উচিত।
কনরাড রুডলফ

(রোলব্যাক সম্পাদনা করার কারণ: পণ্যের নাম কোড নয়, formatted like this
এগুলির

উত্তর:


171

YouCompleteMe চেষ্টা করুন । এটি লাইব্ল্যাং ইন্টারফেসের মাধ্যমে ঝাঁকুনি ব্যবহার করে সিমেটিক সি / সি ++ / অবজেক্টিভ-সি সমাপ্তির প্রস্তাব দেয়। এটি অনেকটা ঝনঝন_পম্পূর্ণ, তবে যথেষ্ট দ্রুত এবং অস্পষ্ট-মিলের সাথে।

উপরের পাশাপাশি, ওয়াইসিএম সি #, পাইথন, গো, টাইপস্ক্রিপ্ট ইত্যাদির জন্য অর্থপূর্ণ সমাপ্তিও সরবরাহ করে এটি এটি ভাষাগুলির জন্য শব্দার্থবিজ্ঞানহীন, সনাক্তকারী ভিত্তিক সমাপ্তি সরবরাহ করে যার পক্ষে শব্দার্থক সমর্থন নেই।


69
আসলে, আমি এই সমাধান গ্রহণ করতে যাচ্ছি। অবশেষে বিতরণ করে এমন একটি প্লাগইন। আমি এটি বেশ কয়েক দিন ধরে ব্যবহার করছি। এই প্রশ্নের উত্তর দিতে মাত্র চার বছর সময় লেগেছিল। ;-)
কনরাড রুডল্ফ

5
YouCompletMe valloric এর সাথে দুর্দান্ত কাজ! অভিনন্দন
statquant

5
খুব খারাপ YouCompleteMe উইন্ডোজে ইনস্টল করার জন্য একটি সম্পূর্ণ পিআইটিএ :(
xx

2
@ ডিআরটিউওক্স রিডমি থেকে: "ওয়াইসিমির উইন্ডোজের পক্ষে কোনও অফিশিয়াল সমর্থন নেই , তবে এর অর্থ এই নয় যে আপনি এটি সেখানে কাজ করতে পারবেন না। উইন্ডোজ ইনস্টলেশন গাইড উইকি পৃষ্ঠাটি দেখুন। এতে যুক্ত হতে নির্দ্বিধায়"
ব্যবহারকারী 456584

7
এই পোস্টে উল্লেখ করা উচিত যে আপনি লেখক, কারণ এটি হ'ল সীমান্তের স্ব-প্রচার ((যদিও আমি এই প্রশ্নের উত্তর দিই না যে তবুও আপনার দাবি অস্বীকার করা উচিত)।
EntangledLoops

36

এছাড়াও ঝাঁকুনি-অসম্পূর্ণ রয়েছে যা সি ++ প্রকল্পের জন্য কোড সমাপ্তির জন্য clangসংকলক ব্যবহার করে । এই প্লাগইনটির সমস্যা সমাধানের ইঙ্গিত সহ আরও একটি প্রশ্ন রয়েছে ।

প্রকল্পটি সংকলন করার সাথে সাথে প্লাগইনটি বেশ ভালভাবে কাজ করবে বলে মনে হচ্ছে তবে বড় প্রকল্পগুলির জন্য এটি নিষেধে ধীর (যেহেতু এটি ট্যাগগুলির তালিকা তৈরির জন্য একটি সম্পূর্ণ সংকলন চেষ্টা করে)।


clang_completeপ্লাগ-ইন Cygwin এবং Windows এ চমত্কারভাবে কাজ করে। বড় প্রকল্পগুলি সম্পর্কে কিছুই বলতে পারি না কারণ আমার কোনও নেই। :)
লুমি

দেখে মনে হচ্ছে যে লাইব্ল্যাং ক্ল্যাং ব্যবহার করে এখন ক্যাশ হয়েছে। এটি তখন গ্রহণযোগ্য উত্তর হওয়া উচিত। আপনি কি লিনাক্স কার্নেলে ঝাঁকুনি-সম্পূর্ণরূপে চেষ্টা করেছেন? কার্নেলের জন্য আমি দেখেছি সেরা সূচকটি Eclipse CDT ব্যবহার করছে, যদি ঝনঝন_কম্পলটি কার্নেলটি পরিচালনা করতে পারে তবে এটি ঠিক যে কোনও কিছু সম্পন্ন করতে সক্ষম হবে।
ছদ্মবেশী

ঝনঝন_পম্পূর্ণটি আমার পক্ষে সহজভাবে ব্যবহৃত সেরা ভিম প্লাগইন।
ক্রোমুল্যান্ট

1
@ ক্রমুলেন্ট আহ, আপনার কমপ্লিট পরীক্ষা করুন, এটি আরও ভাল।
কনরাড রুডল্ফ

@ কনরাড রুডলফ ধন্যবাদ আমি তা পরীক্ষা করব.
ক্রোমুল্যান্ট

7

অনুরোধ অনুসারে, আমি আগে দেওয়া মন্তব্যটি এখানে:

এই একবার দেখুন:

আপনি যদি কোনও ম্যাকওএসএক্স-এ মনোডলভ ব্যবহার করতে চান তবে এই লিঙ্কটি আপনাকে সহায়তা করবে

শুভকামনা এবং শুভ কোডিং।


ওমনিকম্পশন লিঙ্কটি ভাঙা হয়েছে
4:52 এ dotoree

1
আমি আপনাকে পরামর্শ দিচ্ছি github.com/nosami/OmniSharpServer C # এর জন্য YouCompleteMe সঙ্গে, উপরের হিসাবে প্রস্তাব
rafee

6

আমি সবেমাত্র ইলিমি প্রকল্পটি অন্য একটি প্রশ্নের সাথে সংযুক্ত পেয়েছি । অন্তত জাভা ইন্টিগ্রেশনের জন্য এটি বেশ প্রতিশ্রুতিবদ্ধ দেখাচ্ছে।


আপনি এটি পরীক্ষা করেছেন? কৌতূহলোদ্দীপক মনে হচ্ছে.
প্যাকানে

@ পেচান: না আমাকে কয়েক মাস জাভা ব্যবহার করতে হয়নি এবং পরীক্ষার জন্য অতিরিক্ত সময়ও পাইনি।
কনরাড রুডল্ফ

1
একলিমটি জাভার পক্ষে একটি দুর্দান্ত সমাধান বলে মনে হচ্ছে, যদিও গ্রহটি এখনও একটি মাথা বিহীন সেটআপে লোড করার জন্য একটি পশু হিসাবে রয়ে গেছে
দ্রুপদ পঞ্চাল

2
জাভা জন্য, আপনি ভের্পার ব্যবহার করতে পারেন । আমি দেখতে পাচ্ছি যে এটি দুর্দান্তভাবে অটো-সমাপ্তির সাথে ঠিক আছে। মাঝে মাঝে পাঠ্য-ভারী সম্পাদনার জন্য, আমি আসল ভিমে একটি বাহ্যিক সরঞ্জাম হিসাবে চালু করতে পারি।
kizzx2


2

আপনি কী ইন্টেলিজেন্সের মতো কিছু খুঁজছেন?

insevim সমস্যাটি দেখায় বলে মনে হচ্ছে।

এখানে স্ক্রিনশট লিঙ্ক


2
হ্যাঁ, এটিই আমি যা খুঁজছি would দুর্ভাগ্যক্রমে, এটি কেবল উইন্ডোজে চলবে (আমি ওএস এক্স ব্যবহার করছি)। এছাড়াও, সর্বশেষ আপডেট 2003 প্রায় :-( করা হয়েছে বলে মনে হয়
কনরাড রুডলফ

ভাল আপনি সোর্স কোডটি পেতে পারেন :) যদি তা না হয় তবে আমি কেবলমাত্র সর্বসম্পূর্ণতাটিই ভাবতে পারি .. বা এটি একবার দেখুন: ankitjain.org/blog/2007/06/30/integrating-vim-with-monodevelop কমপক্ষে। নেট স্টাফের জন্য ..
রিক টোকিও

রিক, দয়া করে আপনার মন্তব্যটি দুটি পৃথক উত্তর হিসাবে সরবরাহ করুন, সেগুলি অমূল্য এবং আমি তাদের যথাযথভাবে সম্মান করতে চাই! এটি বলেছিল, মনোডিভোল্ফ এখন পর্যন্ত ওএস এক্স এর অধীনে ব্যবহারযোগ্য নয় এবং আমি বর্তমানে ওমনিসিপি কমপ্লিটটিকে সন্ধান করছি।
কনরাড রুডলফ

লল, এটি কেবল উইন্ডো! :( উইন্ডোজ যেখানে আপনার ভিএস আছে সেখানে আপনার এটি কেন উচিত? আমি লিনাক্সের জন্য একটি সমাধান খুঁজছি
নীলস

নীলস: প্রত্যেকেরই ভিজ্যুয়াল স্টুডিওতে অ্যাক্সেস নেই, প্রচুর লোকের মধ্যে ভিআই দক্ষতা রয়েছে যা তারা উইন্ডোজ পরিবেশে প্রয়োগ করতে চান। লিনাক্সের একটি বন্দর ছিল, তবে এটি বর্তমানে নিচে রয়েছে। যাই হোক না কেন, আপনি কী অর্জন করার চেষ্টা করছেন? আপনি কি নিশ্চিত যে আপনার কেবল ডিফল্ট স্বয়ংক্রিয়-সম্পূর্ণ কার্যকারিতা প্রয়োজন নেই? linux.org/docs/ldp/howto/C-editing-with-VIM-HOWTO/…
রিক টোকিও

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.