ইমাসস: স্কিম মোডে 'ল্যাম্বদা'র পরিবর্তে' λ 'কীভাবে সন্নিবেশ করবেন?


10

অনেক আগে, আমি একটি পাঠ্য সম্পাদক সম্পাদনা ফাংশনটি দেখতে পেয়েছি যা 'ল্যাম্বদা' শব্দটি 'λ' অক্ষরের সাথে প্রতিস্থাপন করেছিল। আমি এটি ইমাসে করতে চাই। আমার পছন্দসমূহ:

  • আমি এই ফাংশনটি কেবল কয়েকটি মোডে সক্রিয় করতে চাই (এটি স্কিম-মোডের জন্য সক্রিয় করুন তবে উদাহরণস্বরূপ এটি সি-মোডের জন্য বন্ধ করুন)।

  • কর্মক্ষেত্রে আমি এখনও ইমাসের একটি পুরানো সংস্করণ ব্যবহার করি, সুতরাং সমাধানটি ইমাস্যাক্স 22 এবং ইম্যাকস 23 এর জন্য কাজ করা উচিত।

আমি কিভাবে এগিয়ে যেতে হবে?

উত্তর:


8

আপনি একটি মোড হুক তৈরি করেন, যা lambdaগ্রীক চরিত্রের সাথে প্রতিস্থাপন করে।

   (defun sm-greek-lambda ()
       (font-lock-add-keywords nil `(("\\<lambda\\>"
           (0 (progn (compose-region (match-beginning 0) (match-end 0)
           ,(make-char 'greek-iso8859-7 107))
           nil))))))

তারপরে আপনি এই মোড়কে আপনার মোডে যুক্ত করুন:

   (add-hook 'emacs-lisp-mode-hook 'sm-greek-lambda)

2
এটা তোলে ভালো হতে নামান্তর করতে হবে sm-lambda-mode-hookদ্বারা sm-replace-lambdaবা sm-greek-lambdaXXX-mode-hookসাধারণত run-hookনির্দিষ্ট মোড দ্বারা চালিত হুকগুলি সনাক্ত করতে ব্যবহৃত হয় এবং এভাবে আপনি ব্যবহার করতে পারেন add-hook
দাইমরোড

কি make-charঠিক আছে 22 সাপোর্ট করে তো?
জন পূর্ব ২

@ ডাইমরোড: আপনি দয়া XXX-mode-hookকরে উত্তরে সংজ্ঞায়িত এ এবং এই কাস্টমটির মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন ? বা কমপক্ষে আমাকে একটি দরকারী ডকুমেন্টেশনের দিকে নির্দেশ করুন?
রাহমু

@ রহমু: xxx-mode-hookসাধারণত run-hooksমোডের সাহায্যে হুক দৌড়ানোর নাম xxx। অর্থাৎ emacs-lisp-mode-hookফাংশন emacs-modeবলা হলে চালানো হয়। এই ক্ষেত্রে, কোনও হুক চালানো হয় না তবে একটি ফাংশন হুকের সাথে যুক্ত হয়। এ লুক Elisp ম্যানুয়াল (হুক্স) আরও তথ্যের জন্য।
ডাইমরোড

@rahmu: শুধু একটি ছোট উদাহরণ যোগ করতে আপনি কি করতে পারেন (add-hook 'emacs-lisp-mode-hook 'some-function)কিন্তু (add-hook 'sm-lambda-mode-hook 'some-function)কাজ করবে না যদি না আপনি যে কোডটি আছে কিছু টুকরা করেছি (run-hooks 'sm-lambda-mode-hook)
দাইমরোড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.