টি এল; ডিআর:
আপনার init ফাইলের ( .emacs.d/init.el
অথবা .emacs
) শীর্ষে নিম্নলিখিত লাইনটি যুক্ত করুন :
(package-initialize)
ব্যাখ্যা
ইমাকরা যে ফাইলগুলি ব্যবহার করতে পারে তার বেশি ফাইল তৈরি user-init-file
করা অবশ্যই সঠিক পন্থা নয়। কারণ ম্যানুয়ালটি কোনও বিরোধের ক্ষেত্রে কোনটিকে প্রাধান্য দেয় তা বলে না, কমপক্ষে আপনি যে অংশটি উদ্ধৃত করেছেন তাতে নয়, এই সমস্ত কাজটি বিভ্রান্তি যোগ করার জন্য - এখন আমরা জানি না আসলে আসলে কোনটি user-init-file
(যার মূল্য আপনি চাইতে পারেন) পরিদর্শন করার জন্য)।
সুতরাং ~/.emacs.d/init.el
সাধারণত প্রার্থীদের বাদ দিয়ে সমস্ত প্রার্থীকে অপসারণ করে শুরু করুন (ব্যবহারকারীরা) কারণ এটি অপরিষ্কার জগাখিচিতে অবদান রাখে না $HOME
এবং এটি কেবলমাত্র একটি সংগ্রহস্থল ব্যবহার করে সংস্করণ নিয়ন্ত্রণের অধীনে সবথেকে গুরুত্বপূর্ণ ইমাম কনফিগারেশন ফাইল রাখার অনুমতি দেয় allows এ গিয়ে emacs।
ডিফল্টরূপে ইমাস কলগুলি ব্যবহারকারীর আরআইডি ফাইল লোড package-initialize
হওয়ার পরে এটি তাই করে এ সব কারণ আজকাল অধিকাংশ ব্যবহারকারীদের ব্যবহার করে তাদের প্যাকেজগুলি ইনস্টল package.el
তাই তারা কিছু করতে জন্য এই প্যাকেজ উপলব্ধ করা আছে করা উচিত নয় -।
অন্যদিকে সবাই তা করে না, তাই কল না করাও উচিত package-initialize
। সেই ফাংশনটি ডাকা হওয়া থেকে বিরত রাখা (setq package-enable-at-startup nil)
ব্যবহারকারীর টিআইএন ফাইলে যুক্ত করে করা হয় (আপনি এটি আর কোথায় রাখতে পারেন?)।
package-initialize
ইমাককে এটি না করতে বলার জন্য ব্যবহারকারীর পরিবর্তন হওয়ার আগে ডাকা যাবে না, এবং তাই init ফাইলটি লোড করার পরে এটি করতে হবে । যতক্ষণ না ব্যবহারকারী কেবল প্যাকেজ ইনস্টল করে এবং তারপরে সেগুলি সেগুলি হিসাবে ব্যবহার করে বা কাস্টম ইন্টারফেস যা কেবল সূক্ষ্মভাবে কাজ করে তা ব্যবহার করে তাদের কাস্টমাইজ করে। তবে আপনি যদি এলিসপ ব্যবহার করে আপনার প্যাকেজগুলি কাস্টমাইজ করতে চান তবে আপনাকে নিশ্চিত করতে হবে যে load-path
তারা সংজ্ঞায়িত ফাংশনগুলি ব্যবহার করার আগে তারা আসলে ছিল ।
এটি করা বেশ সহজ এবং সঠিকভাবে নথিভুক্ত করা হয়েছে (যদি আমি এটি আগে দেখতাম তবে উপরের বেশিরভাগটিই আমাকে লিখতে হত না: - /
প্যাকেজিং সিস্টেমকে প্রভাবিত করে এমন ব্যবহারকারী বিকল্পগুলি সহ init ফাইলটি লোড করার পরে স্বয়ংক্রিয় প্যাকেজ লোড হওয়ার কারণটি হ'ল ব্যবহারকারী বিকল্পগুলি কেবল থিম ফাইলটি লোড করার পরে তাদের কাস্টমাইজড মানগুলি গ্রহণ করে। কিছু পরিস্থিতিতে, আপনি আপনার init ফাইলে স্পষ্টভাবে প্যাকেজগুলি লোড করতে চাইতে পারেন (সাধারণত কারণ আপনার init ফাইলে অন্য কোনও কোড একটি প্যাকেজের উপর নির্ভর করে)। সেক্ষেত্রে আপনার init ফাইলটির ফাংশনটি কল করা উচিত package-initialize
। কল package-load-list
করার আগে প্রাসঙ্গিক ব্যবহারকারীর বিকল্পগুলি যেমন (নীচে দেখুন) সেট আপ করা হয়েছে তা নিশ্চিত করা আপনার উপর package-initialize
নির্ভর করে। আপনারও সেট package-enable-at-startup
করা উচিত
nil
, init ফাইলটি প্রক্রিয়া করার পরে প্যাকেজগুলি আবার লোড করা এড়াতে। বিকল্পভাবে, আপনি শুরুতে প্যাকেজ লোড সম্পূর্ণরূপে বাধা চয়ন করতে পারেন, এবং আপনার প্যাকেজগুলি ম্যানুয়ালি লোড করতে `এমএক্স প্যাকেজ-আরিনিয়েশন 'কমান্ডটি প্রার্থনা করতে পারেন।
তাই:
;;; .emacs.d/init.el -- the `user-init-file'
(package-initialize)
(setq package-enable-at-startup nil)
(require 'use-package)
(use-package some-package
:init (setq some-package-variable "foobar")
...
;;; .emacs.d/init.el ends here
অবশ্যই সমস্যা (বা কোনও অতিরিক্ত সমস্যা) হতে পারে যে Symbol's function definition is void: use-packge
টাইপ-ইনটি আপনার init ফাইলটিতে রয়েছে এবং আপনি এটি ইম্যাকস.এস-এ টাইপ না করা পর্যন্ত ঘটেনি।