after-init-hook বনাম eval-after-load / eval-after-load সহ


13

ইমাকস ২৪-তে প্যাকেজগুলি কীভাবে কাজ করে তার পরিবর্তে আমি দরকারী খুঁজে পেয়েছি , তবে আমি অভিজ্ঞ ব্যবহারকারী বা মূল বিকাশকারীর কাছ থেকে একটি নির্দিষ্ট উত্তর চাই যা সাধারণত ২৪.৪-তে আদর্শ ক্ষেত্রে পছন্দ হয়।

আফাইক, (add-hook 'after-init-hook ...)প্যাকেজগুলির জন্য কাস্টমাইজেশন স্থাপনের জন্য তথাকথিত বলপ্রয়োগী পদ্ধতি। যাইহোক, eval-after-loadএবং এর আরও সিনট্যাক্টিক্যালি চিনিযুক্ত with-eval-after-loadআরও গতিশীল এবং সূক্ষ্ম দানযুক্ত কনফিগারেশনের জন্য আরও উপযুক্ত বলে মনে হচ্ছে যা এক্সটেনশানগুলির ধীরে ধীরে, পৃথক এবং অলস লোডিংয়ের সাথে ভাল খেল।

আমার বোঝা কি ঠিক? আমার আর কী মনে রাখা উচিত?

উত্তর:


11

আফাইক, (add-hook 'after-init-hook ...)প্যাকেজগুলির জন্য কাস্টমাইজেশন স্থাপনের জন্য তথাকথিত বলপ্রয়োগী পদ্ধতি।

না। আপনি যদি আপনার init ফাইলটিতে প্যাকেজগুলি কনফিগার করতে চান তবে সাধারণত (package-initialize)বৈশিষ্ট্যটি হল ফাইলটির শীর্ষে কল করা এবং তারপরে কনফিগারেশনগুলি করা। after-init-hookএই উদ্দেশ্যে অযথা জটিল।

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

(with-)eval-after-loadপ্যাকেজ লোড হওয়ার পরে আপনি যা করতে চান তার জন্য ব্যবহৃত হয়। package-initializeপ্যাকেজগুলি লোড করে না, এটি কেবল তাদের "প্রস্তুত" করে (তাদের অটোলোডগুলি লোড করে)।

আপনি যদি eval-after-loadকনফিগারেশনের প্রতিটি সেট ব্যবহার (package-initialize)করেন তবে আপনাকে শীর্ষে কল করার দরকার নেই । তবে লোকেরা সাধারণত যা করেন তা কল করা হয় (package-initialize), যাতে বেশিরভাগ কনফিগারেশনগুলি সরাসরি init ফাইলটিতে লেখা যায় এবং তারপরে কেবল এমন eval-after-loadকোড যা খুব দীর্ঘ বা প্যাকেজ লোড হওয়ার উপর নির্ভর করে।


তবে ঠিক কী eval-after-loadকোনও দেওয়া প্যাকেজের জন্য সবকিছু রাখা ঠিক হবে , এবং কিছু না ব্যবহার (package-initialize)করা?
এরিক কাপলুন

@ এরিক অলিক হ্যাঁ আপনি যদি প্রতিটি কনফিগারেশনের সেট-এর চারপাশে লোভনীয়-পরে-লোড ব্যবহার করেন তবে আপনাকে শীর্ষে কল করতে হবে না (প্যাকেজ-আরম্ভ)।
মালাবরবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.