কিভাবে ইমাক্সে কোড সমাপ্তি পাবেন?


20

আমি জানি যে ইমাক্স কোড সমাপ্তিকে সমর্থন করে। তবে সত্যি কথা বলতে আমি কখনই কোনও ভাল FAQ পাঠক হতে পারি নি, কমপক্ষে এমন কোনও কারণে যা আমি সম্পূর্ণ নতুন। সুতরাং আমি অবাক হই যে আমার কী ডাউনলোড করতে হবে এবং ইমাকগুলি কীভাবে তৈরি করা যায় তা সি ++ এবং জাভাতে আমার জন্য কিছু স্মার্ট কোড সমাপ্তি করতে পারে। বা এমন কোন প্যাকেজ রয়েছে যা অনেকগুলি প্রধান ভাষার জন্য কোড সম্পূর্ণ করে?

উত্তর:


27

ইমাক্সে যে কোনও ধরণের বাফার জুড়ে কাজ করার মূল উপায়টি হ'ল (ওরফে + ) দ্বারা ব্যবহৃত গতিশীল সংক্ষেপণ viationM-/alt/

এটি আপনার বর্তমান বাফারে বা বর্তমানে উন্মুক্ত অন্যান্য বাফারে ইতিমধ্যে বিদ্যমান অন্যান্য স্ট্রিংগুলির সদৃশ করতে পাঠ প্রসারিত করবে।

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


+1 টি। আপনি স্ট্যান্ডার্ড লাইব্রেরি complete.elচেষ্টা করে দেখতেও পারেন। এটি খুব পুরানো এবং অল্প পরিচিত, তবে এটি যে ধরণের ইন-বাফার সমাপ্তিটি কার্যকর তা কার্যকর হতে পারে। M-x find-library completeতারপরে ফাইলটিতে কমেন্টারি পড়ুন।
ড্র হয়েছে

21

@ ডগের উত্তরটি কিছুটা পুরানো এবং তার প্রোকাস পূর্বনির্ধারিত স্নিপেট ব্যবহার করে কোড বিস্তারের দিকে।

আমি মনে করি ওপির প্রশ্নটি ইন্টেলিজেন্স (উদাহরণস্বরূপ কোনও শ্রেণীর স্বয়ংক্রিয় সম্পূর্ণ পদ্ধতি নাম) সম্পর্কে about

  1. হিপ্পি প্রসারিত জনপ্রিয় হিসাবে ব্যবহৃত হয়, সিনট্যাক্স বিশ্লেষকটি ইম্যাক্স ট্যাগ । সুতরাং এটি ctags সমস্ত ভাষা সমর্থন করে (সি ++ , জাভা সহ)। তবে ফলাফলটি নিখুঁত নয় কারণ ctags কেবল কোড বিশ্লেষণের জন্য নিয়মিত অভিব্যক্তি ব্যবহার করে। বিশদ জন্য আমার init-হিপ্পি-প্রসারণ . el দেখুন। আপনি এর মান পরীক্ষা করে শুরু করতে পারেনhippie-expand-try-functions-list

  2. অটো-সম্পূর্ণ একটি অভিনব UI (ড্রপডাউন মেনু এমনকি কনসোল উইন্ডোতে) সহ একটি আধুনিক। আপনি যদি ব্যাকএন্ড হিসাবে ঝাঁকুনি ব্যবহার করেন । ইন্টেলিজেন্স আরও ভাল। ঝনঝনির কাজ পেতে, আপনাকে অটো-সম্পূর্ণ-ক্ল্যাং ইনস্টল করতে হবে যা অটো-সম্পূর্ণের প্লাগইন। এটি কেবলমাত্র ভাষা ক্ল্যাং সমর্থন করে (সি / সি ++ / ওবিজে-সি)। সিলভাইন বেনার যেমন উল্লেখ করেছেন, আপনি জাভা পার্সিং ব্যাক এন্ড হিসাবে ইমাসস-একলিম ব্যবহার করতে পারেন যা বাস্তবে গ্রহনের নির্বাহযোগ্য বলে। সুতরাং স্বয়ংক্রিয় সম্পূর্ণ জাভা সমর্থন করতে পারে। বিশদ জন্য আমার init-অটো সম্পূর্ণ.এল দেখুন।

  3. শব্দার্থবিজ্ঞান UI এবং পিছনের প্রান্ত পার্সিং ইঞ্জিন উভয়ই সরবরাহ করে। এটা ধীরগতির. ড্রপডাউন ইউআই ঠিক আছে তবে এক্স উইন্ডো দরকার। ইন্টেলিজেন্স ফলাফল ctags এর চেয়ে ভাল। এবং ডকুমেন্টেশনটি আমার পক্ষে খুব মজাদার। বিশদ জন্য init-semantic.el দেখুন ।

  4. সংস্থা-মোড অটো-সম্পূর্ণর মতো, পার্থক্য হ'ল এটি সমস্ত কিছুকে একটি বান্ডলে প্যাকেজ করে। উদাহরণস্বরূপ, সি ++ বিকাশকারীদের কেবল সংস্থা-মোড ইনস্টল করতে হবে (অটো-সম্পূর্ণ কিছু তৃতীয় পক্ষের প্লাগইন প্রয়োজন)। আরেকটি UI 'তে পার্থক্য কোম্পানী প্রার্থী দেখাবে হয় স্বয়ংক্রিয়ভাবে । সুতরাং আপনি সংস্থায় কম কী টিপুন। স্বনির্ধারণের পরে অটো-সম্পূর্ণতে একই জিনিস করা সম্ভব।

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

আমি স্বতঃ-সম্পূর্ণ বা সংস্থাকে প্রধান কোড সমাপ্তি প্লাগইন হিসাবে ব্যবহার করার পরামর্শ দিচ্ছি এবং সিমেটিক বা হিপ্পি-প্রসারণকে পরিপূরক প্লাগইন হিসাবে ব্যবহার করব

আমি সংস্থা-মোড এবং হিপ্পি-প্রসারিত ব্যবহার করি কারণ,

  • এখন (বছরের 2017) সংস্থা-মোডটি অটো-সম্পূর্ণের চেয়ে বেশি সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়েছে এবং আরও 3 য় পক্ষের প্লাগইন রয়েছে (উদাহরণস্বরূপ, ল্যাটেক্স প্লাগইন)

  • হিপ্পি-প্রসারণ খুব সক্রিয় নয় তবে এটি TABকী-কোম্পানী-মোড / শব্দার্থক / স্বয়ংক্রিয়-সম্পূর্ণ ব্যবহার করছে তা কী দখল করে না

আপনি যদি সি ++ / জাভার জন্য সংস্থা-মোড ব্যবহার করেন তবে আপনি সংশোধন করতে চাইতে পারেন company-backends

সংস্থা-মোডে আরও কয়েকটি টিপস,

আপনার মানটির জন্য টুইঙ্ক লাগতে পারে company-backends। উদাহরণস্বরূপ, ধরুন এর মানটি (company-eclim company-semantic company-clang (company-dabbrev-code company-gtags company-etags company-keywords))। তারপরে যদি company-eclimশূন্য-প্রার্থী পেতে পারেন, companyভাবেন যে আপনি জাভা লিখছেন, সুতরাং এটি পরে ব্যাকেন্ডগুলি চালাবে না company-eclim

এখন দেখা যাক (company-dabbrev-code company-gtags company-etags company-keywords)। এই চারটি ব্যাকএন্ড একসাথে ব্যবহার করা হবে। উদাহরণস্বরূপ, company-dabbrev-codeসাফল্যের সাথে অ-শূন্য প্রার্থী আনার পরেও, অন্য তিনটি ব্যাকএন্ড এখনও কার্যকর করা হয়েছে।

বাস্তব বিশ্বে, প্রায়শই ব্যাকেন্ডের ক্রমটি পুনরায় সমন্বয় করা বা নতুন ব্যাকএন্ড যুক্ত করা প্রয়োজন ( company-rtagsউদাহরণস্বরূপ)।


ল্যাটেক্সের জন্য ইমাস 24-তে সেরা স্বতঃসমাপ্তি প্যাকেজটি কোনটি?
ডক্টরেট

@ ডক্টরেট আমি মনে করি আপনার অটো-সম্পূর্ণ এবং এর উত্স emacswiki.org/emacs/ আউটকম্পিটসোর্স ব্যবহার করা দরকার , তবে আমি ল্যাটেক্স ব্যবহারকারীর পরিবর্তে একজন প্রোগ্রামার, সুতরাং আপনি গুগল প্লাস ইমাকস সম্প্রদায়টিতে ডাবল চেক করতে চান, সেখানে প্রচুর একাডেমিক লোক ।
চেন বিন

দয়া করে নোট করুন সংস্থা-মোড ল্যাটেক্স সমর্থন করে। সুতরাং আমি অটো-সম্পূর্ণের পরিবর্তে সংস্থার পরামর্শ দিচ্ছি
চেন বিন

2

সংক্ষিপ্ত উত্তর: আমি ইম্যাকের জন্য কোনওটিই জানি না যা জাভা জন্য দরকারী। গতিশীল প্রসারিত আপনার শ্রেণীর পাঠাগারের লাইব্রেরিগুলির জন্য কোনও যত্ন করে না, আপনি যে কোডটি টাইপ করছেন সে সম্পর্কে এটি কিছু জানে না যা কেবলমাত্র বাফারের একটিতে বিদ্যমান টেক্সটে প্রসারিত হতে পারে। জেডিই এবং ইমাস-একলিম এই কার্যকারিতাটি সরবরাহ করার চেষ্টা করে তবে ব্যক্তিগতভাবে আমি প্রভাবিত হইনি।


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