কেন লিস্প-মিথস্ক্রিয়া-মোড বিদ্যমান, এবং আমাদের কি কখনও এটির প্রয়োজন হয়?


20

প্রশ্ন: কেন lisp-interaction-modeবিদ্যমান এবং এর পরিবর্তে এটি ব্যবহার করার কোনও কারণ আছে emacs-lisp-mode?

ম্যানুয়াল রাজ্যের emacs-lisp-modeএবং lisp-interaction-modeযে আধুনিক বেঁধে ছাড়া অভিন্ন C-jকরার eval-print-last-sexp। এর বাইরে, "লিস্প ইন্টারঅ্যাকশন মোডের অন্যান্য সমস্ত কমান্ডগুলি ইমাস লিস্প মোডের মতোই।" আমি যতদূর বলতে পারি, কেবল *scratch*বাফার পরবর্তীকর্মটি ব্যবহার করে।

এটি আমার মতই অদ্ভুতভাবে আঘাত করে যে একটি সম্পূর্ণ মোড রয়েছে যা কেবলমাত্র একটি কী-বাইন্ডিং দ্বারা অন্যের থেকে পৃথক হয়, তাই আমি ধরে নিই যে আমি কিছু ইতিহাস বা প্রসঙ্গটি অনুপস্থিত।

তাই:

এই প্রশ্নের অনুপ্রেরণা হ'ল, এখনই, আমি কীগুলি দু'বার (দুটি মোডে) আবদ্ধ করছি যাতে আমার *scratch*বাফার *.elফাইল পরিদর্শনকারী বাফারদের মতো আচরণ করে। যদি lisp-interaction-modeআশেপাশে রাখার কোনও ব্যবহারিক কারণ না থাকে তবে আমি ঠিক করব (setq initial-major-mode 'emacs-lisp-mode)এবং এটি সম্পন্ন করব ।


1
হতে পারে আপনি " প্রশ্ন: " :) দিয়ে আপনার প্রতিটি প্রশ্নের
প্রেরণ করা বন্ধ করবেন

আপনি পছন্দ করেন এমন কোনও বড় মোড ব্যবহার করতে পারেন *scratch*
স্টিফান

3
@nicael: প্রশ্ন: কি সম্পর্কে মত প্রশ্ন ? আপনি আমাকে আহত করলেন, স্যার! ;)
ড্যান

উত্তর:


13

আপনি যদি C-jআচরণটি ঘৃণা না করেন (এবং আমি নিশ্চিত যে বেশিরভাগ এলিস্প লেখক এটিকে সুবিধাজনক বলে মনে করেন), কেবল জিনিসগুলি সেভাবেই রাখুন।

আপনার কীগুলি lisp-mode-shared-mapমোড-নির্দিষ্ট কীম্যাপগুলির জন্য সদৃশ করার পরিবর্তে তার জন্য সংজ্ঞা দিন ।

সকল lisp-mode-map, emacs-lisp-mode-mapএবং lisp-interaction-mode-mapআছে lisp-mode-shared-mapতাদের পিতা বা মাতা কীম্যাপ হিসাবে।


15

একটি নতুন উত্পন্ন মোডটি সস্তা: এর lisp-interaction-modeউত্তরাধিকার সূত্রে প্রাপ্ত emacs-lisp-mode, এর বাস্তবায়ন কোডের মাত্র এক ডজন লাইন। এটি emacs-lisp-modeকেবল নিম্নলিখিত পদ্ধতিগুলির থেকে পৃথক :

  • এর আলাদা নাম রয়েছে;
  • এটির একটি আলাদা কীম্যাপ রয়েছে;
  • এটির একটি আলাদা সিনট্যাক্স টেবিল রয়েছে;
  • এটি একটি অতিরিক্ত হুক আছে

অন্যদিকে, এটি এর সংক্ষিপ্ত টেবিলটি ভাগ করে emacs-lisp-mode

সম্পাদনা করুন: যেমনটি তার উত্তরে @ ফিলস দ্বারা উল্লিখিত হয়েছে (যা দেখুন), একটি সাধারণ পিতামাতার কীম্যাপস emacs-lisp-modeএবং lisp-interaction-modeভাগ করুন lisp-mode-shared-map। কী-বাইন্ডিংগুলি নকল করার কোনও কারণ নেই - কেবল তাদের মধ্যে সংজ্ঞা দিন lisp-mode-shared-map, এবং তারা উভয় মোডে প্রয়োগ করা হবে (এবং lisp-modeএটিও সম্ভবত ভাল)।

*scratch*বাফারের মোডে পরিবর্তন আনার ক্ষেত্রে কি কোনও অপ্রত্যাশিত পরিণতি হবে emacs-lisp-mode?

সর্বাধিক সুস্পষ্ট পরিণতিটি হ'ল এটি lisp-interaction-mode-hookআর *scratch*বাফারে চালিত হবে না ।


3
এটি একটি অতিরিক্ত হুক আছে emacs-lisp-mode-hookজন্য সঞ্চালিত lisp-interaction-modeকারণ এটি যেভাবে তৈরি পদ্ধতিগুলি কাজ করে । এটা তোলে করেন একটি ভিন্ন কীম্যাপ আছে, কিন্তু উভয় elisp মোড একই পিতা বা মাতা কীম্যাপ ভাগ করুন ( lisp-mode-shared-map)। এটির একটি পৃথক বাক্য গঠন টেবিল রয়েছে তবে এটি এর প্যারেন্ট মোডের সাথে সমান (কারণ এটি সেট করার জন্য এটি পিতামাতার সাথে পিছনে যায়)।
ফিল্ডস

হ্যাঁ, আপনি ঠিক বলেছেন। আশা করি এখনই ঠিক হয়ে গেছেন।
jch

4

FWIW, আমি ব্যবহার emacs-lisp-modeমধ্যে *scratch*বাফার নিজেকে। আমি যদি কিছু মূল্যায়ন করতে চান তবে প্রয়োজনের সময় আমি C-x C-eএকটি C-uউপসর্গ দিয়েই করব । আমি এই অনুশীলনের কোনও খারাপ দিক দেখছি না।

কেন মোড আছে হিসেবে, এটা ঠিক যে পাতার মর্মর কোডের একটি কয়েক লাইন হয় elisp-mode.el, এবং এটি সেখানে মত হয়েছে চিরকাল , তাই মুছে ফেলার এটা অর্থহীন বলে মনে হয়।


আমি যুগে যুগে নিজেই এটি করা শুরু করেছি কারণ আমি C-jআবদ্ধ থাকতে চেয়েছিলাম newline-and-indentতবে এই দিনগুলিতে ইন্ডেন্টেশনটি স্বয়ংক্রিয়ভাবে ঘটে যাওয়ায় এটি আর কোনও গুরুতর উদ্বেগ নয়। সুতরাং আমি যদি ইতিমধ্যে এই পরিবর্তনটি অনেক আগেই না করে ফেলেছিলাম তবে আমি এখন এটি নিয়ে বিরক্ত করব না।
হ্যারাল্ড হানচে-ওলসেন

আমিও, এটির জন্য মূল্যবান - এটি দীর্ঘকাল ধরে করেছে। অথবা আমি একটি ফোঁটা *.elফাইল বাফার ব্যবহার করি ।
ড্রিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.