প্রোগ্রামিকভাবে কাস্টম ভেরিয়েবলটিকে ডিফল্ট মানটিতে রিসেট করুন


25

প্রশ্ন: এলিস্প ব্যবহার করে, কীভাবে মানটি কী তা না জেনে আমি একটি ভেরিয়েবলকে তার ডিফল্ট মানটিতে পুনরায় সেট করতে পারি?

আমি আমার ইন-ফাইলটিতে একটি অ-ডিফল্ট মান সেট করে এমন একটি চলকটির জন্য কাস্টমাইজ ইন্টারফেস আনতে এবং কীভাবে এটি করব তা নির্ধারণ করার C-h kচেষ্টা করেছি এবং "রিভার্ট ..." বোতামটি ক্লিক করে টিপুন। এটি ডকুমেন্টেশনগুলি সামনে এনেছিল widget-button-clickযা স্পষ্টতই খুব বেশি সাহায্য করে নি। (একইভাবে, C-h k RETবোতামের পয়েন্টের সাহায্যে সহায়তা দেখায় Custom-newlineযা আমি যা খুঁজছি তাও নয় is)


3
সম্পর্কিত, নন-কাস্টম ওয়ার্সের
মালবারবা

উত্তর:


23

C-hig (elisp) Variable Definitions

অভ্যন্তরীণভাবে, মান মানটির জন্য অভিব্যক্তি রেকর্ড করতে কাস্টমাইজেশন বাফারের সাহায্যে ব্যবহারকারী দ্বারা রক্ষা করা মানটি রেকর্ড করতে এবং কাস্টমাইজেশন বাফারের সাহায্যে ব্যবহারকারী দ্বারা নির্ধারিত মানটি রেকর্ড করতে defcustomপ্রতীক সম্পত্তি ব্যবহার করে , তবে সংরক্ষণ করা হয়নি। প্রতীক বৈশিষ্ট্য দেখুন । এই বৈশিষ্ট্যগুলি হল তালিকা, যার মধ্যে একটি অভিব্যক্তি যা মানটির মূল্যায়ন করে।standard-valuesaved-valuecustomized-valuecar

অত: পর:

(setq foo (eval (car (get 'foo 'standard-value))))

নোট করুন যে এটি কেবল defcustomভেরিয়েবলগুলিতে প্রযোজ্য (যেমন "ব্যবহারকারী বিকল্পসমূহ")। ইমাসগুলি defvarকোথাও কোনও ভেরিয়েবলের প্রাথমিক মান সংরক্ষণ করে না ।


3
আসলে, আপনাকে প্লিস্টের উপত্যকাটি মূল্যায়ন করতে হবে। আপনার উদাহরণটি এতে পরিবর্তন করা উচিত: (setq foo (eval (car (get 'foo 'standard-value))))উত্পাদিত ডিফল্ট মান ফর্মটি defcustomএকটি ফানকল এবং ক্লোজার সহ একটি ফর্ম (এটি সম্ভবত তখন ঘটে থাকে যখন লেজিকাল বাঁধাই সক্ষম করা হয়)
এলিয়াস মার্টেনসন

আপনি সম্ভবত এই ক্ষেত্রে setq-defaultনা চেয়ে ব্যবহার করতে চান setq
সানাইটিঙ্ক

11

আরেকটি, সম্ভবত ক্লিনার, একটি ভেরিয়েবলের মান পুনরায় সেট করার উপায়:

custom-reevaluate-settingইন একটি সংকলিত লিস্প ফাংশন custom.el

(custom-reevaluate-setting SYMBOL)

SYMBOLএর সংরক্ষিত বা মানক মানটি পুনরায় মূল্যায়ন করে এর মানটি পুনরায় সেট করুন । এটি করতে :setফাংশনটি ব্যবহার করুন । এটি অনুকূলিতকরণযোগ্য বিকল্পগুলির জন্য কার্যকর যা তাদের মান মানের সত্যই গণনা করার আগে সংজ্ঞায়িত হয়। যেমন ডাম্পড ভেরিয়েবল যার ডিফল্ট রান-টাইম তথ্যের উপর নির্ভর করে।

উদাহরণস্বরূপ:

(custom-reevaluate-setting 'emms-player-next-function)

পূর্ববর্তী মানটিকে প্রতীকের সাথে প্রতিস্থাপন করবে standard-value

সম্পাদনা

এই ফাংশন সম্পর্কিত একটি খুব গুরুত্বপূর্ণ বিশদের জন্য নীচে @ ফিল্মের মন্তব্য পড়ুন।


5
নোট " সংরক্ষণ করা বা মান মান"। অগ্রাধিকারের সেই ক্রমে। যদি ব্যবহারকারী ভেরিয়েবলের জন্য মানটি কাস্টমাইজ করে এবং সংরক্ষণ করে থাকে তবে এই ফাংশনটি এটির সাথে পুনরায় সেট করে এটির saved-valueনয়standard-value
ফিল্ড 23
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.