ইমাসে বিদ্যমান ফাংশনটির সংজ্ঞা মুদ্রণের কোনও উপায় আছে কি?


10

আমি ইমাসে বিদ্যমান ফাংশনের সংজ্ঞা দেখতে চাই। এটা কি সম্ভব?

আমি চেষ্টা করেছি C-h d function-name RET, তবে এটি কেবল ফাংশনটির জন্য ডকুমেন্টেশন স্ট্রিং প্রদান করে, প্রকৃত ফাংশনটি নিজেই নয়।

আমি বাশের typeআদেশের অনুরূপ কিছু ভাবছি যা কোনও ফাংশনের পুরো সংজ্ঞা ফিরিয়ে দেবে।

(বিব্রতকর ব্যাকস্টোরি: আমি দুর্ঘটনাক্রমে আমার .emacsফাইলে একটি অ-কার্যকারী সংস্করণ দিয়ে একটি কার্যকরী ফাংশন লিখেছিলাম । মূল ফাংশনটি এখনও স্মৃতিতে রয়েছে! এবং এটি কার্যকর হয়! তবে আমি কীভাবে এটি করেছি তা আমার জীবনের জন্য স্মরণ করতে পারি না))


1
যদি আপনি .emacsকোনও বাফারে খোলা রেখে থাকেন তবে পাগলের মতো পূর্বাবস্থায় ফিরে আসার চেষ্টা করুন।
গিলস 'অশুচি হওয়া বন্ধ করুন'

উত্তর:


10

আপনি যদি টাইপ C-h f function-name RETকরেন তবে ফাংশনের উত্সের লিঙ্ক সহ যদি উপলব্ধ থাকে তবে ফাংশনের ডকুমেন্টেশন পাবেন।

আমি মনে করি না যে কোনও সহজ লিস্প ফাংশন রয়েছে যা আপনি কোনও ফাংশনের উত্সের অবস্থান পুনরুদ্ধার করতে কল করতে পারেন; বাকী সহায়তা সিস্টেমের বাকি অংশগুলির সাথে অনুসন্ধানটি বেশ জড়িত। find-lisp-object-file-nameমূল ফাংশন যা কোনও ফাংশনের উত্স কোথায় তা নির্ধারণের চেষ্টা করে।

যদি না function-nameএকটি আদিম (জন্য Emacs সি সোর্সে সংজ্ঞায়িত) হবে তখন আপনি এটির কোড দেখতে পারেন (symbol-function 'function-name), অথবা আরো সাধারণভাবে (পরোক্ষ ফাংশনের 'ফাংশনটি-নাম)। তবে, যদি ফাংশনটি বাইট-সংকলন করা হয় তবে আপনি যা দেখবেন তা হ'ল এটির বাইকোড।


1
ধন্যবাদ! (symbol-function 'function-name)ঠিক আমি যা খুঁজছিলাম! এছাড়াও, দেখে মনে হচ্ছে আপনার সি ফাংশনগুলির সত্যিকারের উত্সের প্রয়োজন হলে আপনি ওলেগের উত্তর থেকে তথ্য ব্যবহার করে এটি পেতে পারেন।
মিকাহ আর লেডবেটার

ধন্যবাদ! এছাড়াও, যদি ফাংশনটি অটোলয়েড হয়, উত্স কোডটি পাওয়ার আগে আপনাকে একবার কল করতে হবে।
জেরহার্ড বার্গার

3

M-x find-function বিন্দু কাছাকাছি ফাংশন সংজ্ঞা প্রদান করে।

ডকুমেন্টেশন থেকে:

সংজ্ঞাটির আগে পয়েন্টের নিকটে ফাংশনটির সংজ্ঞা (`ফাংশন-এ-পয়েন্ট-দ্বারা নির্বাচিত) এবং সংজ্ঞাটির আগে পয়েন্টের স্থানে উত্স ফাইলটি সন্ধান করে। সরানোর আগে চিহ্ন সেট করুন, যদি বাফারটি ইতিমধ্যে বিদ্যমান থাকে।

আপনি যদি সি তে প্রয়োগ করা ফাংশনগুলি অন্তর্ভুক্ত করতে চান তবে আপনাকে আপনার .emacs ফাইলে নিম্নলিখিতটি যুক্ত করতে হবে:

(setq find-function-C-source-directory (concat (getenv "emacs_home") "/path/to/source-dir"))

হুম। এটি জেনে রাখা ভাল তবে আমি মনে করি এটি কেবল অন্তর্নির্মিত ফাংশনগুলির জন্যই কাজ করে যা আমি যা খুঁজছিলাম তা নয়।
মিকাহ আর লেডবেটার

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