আমার কনফিগারেশন ফাইলগুলিতে কখন-ইভাল-পরে-লোড ব্যবহার করা উচিত?


15

আমি আমার কনফিগারেশন ফাইলগুলি পেরিয়ে গিয়েছিলাম এবং কিছু পরিষ্কার করতে চাই।

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

আমার মনে যা ছিল তা এখানে ( লিস্প / আরম্ভ-হেলম.এল ):

(with-eval-after-load 'helm
  (setq helm-mode-line-string "")
  (add-to-list 'helm-sources-using-default-as-input 'helm-source-man-pages)
  (define-key global-map (kbd "C-c m") 'helm-imenu)
  (define-key global-map (kbd "C-x b") 'helm-buffers-list))

(with-eval-after-load 'helm-command
  (global-set-key (kbd "M-x") 'helm-M-x))

(with-eval-after-load 'helm-projectile
  (helm-projectile-on))

ইমাক্স পুনরায় চালু করার পরে, আমি এই উইন্ডো আকারের ইস্যুটি পেয়েছি:

Emacs-উইন্ডো আকার-ইস্যু

এইভাবে আমি আমার উইন্ডোটির আকার পরিবর্তন করলাম:

(set-frame-parameter nil 'fullscreen 'fullboth)

আমি অনুমান করছি যে আমি অপব্যবহার করছি with-eval-after-load, কেউ কীভাবে তার ইমাস কনফিগারেশন স্যানিটাইজ করবেন এবং নিশ্চিত করুন যে কোনও প্যাকেজ ইনস্টল করা না হলেও কিছুই ভঙ্গ হচ্ছে না?


এটি একেবারে উদ্ভট। (সম্ভবত কোনও বাগ?)
পাইথননট

এটির সাথে কী সম্পর্কযুক্ত হতে পারে আপনার কোনও ধারণা আছে? আমি রেলক্যাটের ওএস এক্স পোর্টটি ব্যবহার করছি এবং আমি কোনও ইস্যু যুক্ত করতে চাই না যেখানে এটি সম্পর্কিত নয় :)।
ম্যাথিউ মার্কস

8
আমি with-eval-after-loadআমার প্যাকেজ সম্পর্কিত সমস্ত কাস্টমাইজেশন একবারে মোড়ানোর জন্য ব্যবহার করার চেষ্টা করেছি। তারপরে আমি আলোটি দেখেছি এবং use-packageপরিবর্তে ব্যবহার শুরু করেছি ।

@itsjeyd এটি দেখতে খুব সহজ এবং সুবিধাজনক! তবে আমি কিছুটা সমস্যায় পড়েছি: আমি মন্তব্য করেছি (package-initialize)এবং এটি দিয়ে প্রতিস্থাপন করেছি (require 'use-package)তবে আমি ফাইল ত্রুটি পেয়ে যাব : ইমাস পুনরায় আরম্ভ করার সময় লোড ফাইল, এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই, ব্যবহার-প্যাকেজ খুলতে পারে না । এবং তবুও, একবার ইমাকস শুরু হয়ে গেলে আমি (require 'use-package)কোনও ইস্যু ছাড়াই প্রকাশ করতে পারি । অবশেষে, আমি এমনকি চেষ্টা করেছি with-eval-after-load, এখনও একই ত্রুটি। প্যাকেজ.েল থেকে প্যাকেজগুলি ব্যবহার করার use-package সময় কীভাবে ইনস্টল করবেন সে সম্পর্কে রিডমি খুব পরিষ্কার নয় ।
ম্যাথিউ মার্কস

1
আমাদের আপনার .emacs, অগ্রাধিকার হিসাবে একটি স্ট্রিপড ডাউন সংস্করণ দেখান যা কম লাইনে এবং যতটা সম্ভব বাহ্যিক প্যাকেজ সহ সমস্যাটি প্রদর্শন করে। এটি সম্ভবত প্রারম্ভকালীন সময়ে ফ্রেম সেটআপ বনাম প্যাকেজ লোডের সময়সীমার সাথে সম্পর্কিত । তবে আপনার কোডটি না দেখে আমরা করার মতো অনেক কিছুই নেই। আপনি ইমাকের কোন সংস্করণ ব্যবহার করছেন তাও আমাদের জানান।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

উত্তর:


2

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

আপনার helmপ্রারম্ভিককরণের সমস্যা হিসাবে , ডকুমেন্টেশনটি সুপারিশ করে যে (require 'helm-config)আপনার init.elবা তার নির্ভরতার মধ্যে উপস্থিত রয়েছে ।

আমি খুঁজে পেয়েছি যে helm-configভরসা করার পরিবর্তে প্রাথমিককরণের সময় কেবল এটি প্রয়োজন সহজতর autoload, বিশেষত যেহেতু আমি প্রায়শই তত্ক্ষণাত যে কোনও উপায়ে এটি লোড করব।


আমি তখন থেকে ব্যবহার করতে পরিবর্তন করেছি use-packageএবং প্রয়োজনের helm-configপরেও আমি এখনও একই সমস্যা পেয়েছি। এখানে আমার আপডেট করা কনফিগারেশন সেটআপ রয়েছে: বিটবুকিট.আর । / Angrybacon / dotemacs / src
ম্যাথিউ মার্কস

1

দেখা যাচ্ছে এটির helmসূচনা (বা সামান্য) এর সাথে কিছুই করার ছিল না ।

ইমাক্সের শুরুর সময়টিকে অনুকূল করতে আমার চিরন্তন সন্ধানে, আমি আমার কনফিগারেশনের একেবারে শুরুতে ইন্টারফেস সম্পর্কিত সমস্ত জিনিস সরিয়ে নিয়েছি। এর মধ্যে আমি ব্যবহার করি এমন সিউডো পূর্ণস্ক্রিন অন্তর্ভুক্ত।

ভারী কোনও লিস্প লোড হওয়ার আগে সংশ্লিষ্ট লাইনটি স্থাপন করা আমার সমস্যাটি স্থির করে।

রেফারেন্সের জন্য আমার কনফিগারেশন এখানে

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