.Emacs পরিবর্তন করার পরে আমি কীভাবে পুনরায় লোড করব?


375

ইম্যাকগুলি পুনরায় .emacsআরম্ভ না করে আমি যে সমস্ত সংজ্ঞাগুলি আপডেট করেছি সেগুলি পুনরায় লোড করার জন্য আমি কীভাবে ইম্যাক্স পাব ?


18
আমি জানি ইমাকগুলি প্রায়শই একটি ওএস হিসাবে বিবেচিত হয়, তবে ... এস / রিবুট / পুনরায় চালু /?
উইলিয়াম পার্সেল

6
আমি কোনও বিকাশকারী নই, তাই বিকাশকারীদের সাথে সাথে উত্তরগুলি যে তাৎক্ষণিকভাবে উপলব্ধি করে তা আমার কাছে এতটা বোঝায় না
Yazz.com

4
@ এমজেবি স্ট্যাক ওভারফ্লোর উদ্দেশ্য হ'ল প্রশ্নের মূলতম এমনকি জ্ঞানের জন্য জ্ঞান ভান্ডার হতে পারে। এই প্রশ্নটি স্ট্যাক ওভারফ্লোয়ের উদ্দেশ্যটির সাথে পুরোপুরি ফিট করে। দয়া করে দেখুন stackoverflow.com/faq
chollida


10
হাহা এখন পাঁচ বছর পরে প্রস্তাবিত "গুগল সার্চ" প্রথমে এখানে আসে! সুন্দর
জিমলোহসে

উত্তর:


350

আপনি কমান্ড লোড-ফাইল ব্যবহার করতে পারেন ( M-x load-fileতারপরে ডিফল্ট ফাইল নামটি গ্রহণ করতে দুবার রিটার্ন টিপুন, যা বর্তমান ফাইলটি সম্পাদনা করা হচ্ছে)।

আপনি যে কোনও সেক্সপ এর শেষে কেবল বিন্দুটি সরাতে পারেন এবং C-xC-eঠিক সেই সেক্সপকে সম্পাদন করতে টিপতে পারেন। সাধারণত আপনি যদি কেবল একটি লাইন বা দুটি পরিবর্তন করেন তবে পুরো ফাইলটি পুনরায় লোড করার প্রয়োজন হয় না।


22
মনে রাখবেন যে এটি সর্বদা আপনি যা ভাবেন ঠিক তেমনটি করে না। আপনার যদি ভেরিয়েবল থাকে যার বিষয়বস্তুগুলি ফ্লপ হয়েছে (অর্থাত্ এটির বিপরীতে বুলিয়ান সেট করা) তবে আচরণটি ফাইল লোড করার মতো হবে না।
চোলিদা

4
সাধারণভাবে যে কোনও পার্শ্ব প্রতিক্রিয়াগুলি পছন্দসই আচরণটি ভেঙে ফেলতে পারে: ফাইলগুলি লোড করা ইত্যাদি
Vemv

আমি যখন এটি করি, আমি বার্তাটি পাই: কোড-লোড-সহ-রূপান্তর: ভেরিয়েবল হিসাবে প্রতীকটির মানটি শূন্য: n
ক্রিস মেরি

2
একটি defunবা এর পিছনে মুভিং পয়েন্টের পরিবর্তে defvar, আপনি এটিকে ঘোষণার বডি এবং টাইপ করতে পারেন C-M-x। খুব সহজ।
থমাস

151

খুব আশ্চর্যজনক যে খুব সুবিধাজনক

M-x eval-buffer

এখানে উল্লেখ করা হয় না।

এটি তাত্ক্ষণিকভাবে বাফারের সমস্ত কোডের মূল্যায়ন করে, এটির দ্রুততম পদ্ধতি, যদি আপনার .emacsআদর্শবান হয়।


3
কে বলে যে .emacsআদর্শবান (বা হতে হবে)?
মাইক

@ মাইক: আমি না "প্রদত্ত একটি, বি সত্য সত্য" আমার জন্য বোঝানো হয়েছে, "যদি ক, খ সত্য হয়" তবে আমি কী বলতে চাই তা দেখতে পাচ্ছি। আমি আরও স্পষ্টতার জন্য দেওয়া পরিবর্তন।
পিটার

7
@ মাইক: আদর্শবান .emacsনা হওয়ার বিষয়টি কখন বুঝবে ?
জাজ

আমি এই প্রথম পরামর্শ বলে মনে হত।
স্ট্রাইকার

1
আমি বলব না এটি ভাল স্টাইল তবে এটি ঘটতে পারে। উদাহরণস্বরূপ আপনি কোনও ফাংশনটি ইতিমধ্যে সংজ্ঞায়িত করা থাকলে (প্রথম প্রারম্ভিকরণ থেকে) নতুন করে সংজ্ঞা না দেওয়া বেছে নিতে পারেন। আপনার init ফাইলটি মূল্যায়নের সময় আপনি এর সংজ্ঞাটিতে কোনও পরিবর্তন দেখতে পাবেন না।
কালিগুলে

43

আপনি সাধারণত পরিবর্তিত অঞ্চলটিকে পুনরায় মূল্যায়ন করতে পারেন। আপনি পরিবর্তন করেছেন এমন ~ / .emacs অঞ্চল চিহ্নিত করুন এবং তারপরে ব্যবহার করুন M-x eval-region RET। এটি পুরোপুরি পুনরায় মূল্যায়নের চেয়ে অনেক বেশি নিরাপদ যেহেতু .emacs ফাইলটি লিখতে সহজ যা দুবার লোড হওয়ার পরেও ঠিক কাজ করে না।


2
মজাদার. আমি .emacs ফাইলের ধারণাটি বিবেচনা করি নি যা আদর্শবান নয়। ELisp দিয়ে শুরু করার সাথে সাথে নজর রাখার মতো কিছু
এরিক

2
আমি এটা একটি .emacs যে ফাইলটি খুঁজে পাওয়া বিরল অনুমান হবে হয় idempotent এক মৃত্যুদন্ড যেমন ঠিক একই রাষ্ট্র ফলে দুই মৃত্যুদণ্ডের শক্তিশালী অর্থে অন্তত। খুব কমপক্ষে, বিভিন্ন তালিকায় যুক্ত হওয়া বেশ সাধারণ, প্রায়শই এমন উপায়ে যা দ্বিতীয়বার সম্পাদন করার সময় সদৃশ এন্ট্রিগুলিকে দমন করবে না।
ডেল হ্যাগলুন্ড

1
অন্য একটি ধারণা: আমি উপরে প্রস্তাবিত পদ্ধতির ব্যবহার করে এটি সম্ভব যে আপনার .emacs আসলে যা করে তা ইমাস রাষ্ট্রটি আপনার কাছে নেই। উদাহরণস্বরূপ, যেহেতু আপনি একটি পরিষ্কার স্লেট থেকে পুরো .emacs ফাইলটি কার্যকর করেন নি, আপনি আসলে জানেন না যে এটি আপনার যা চান তা করে।
ডেল হাগলুন্ড

1
এটিই বলা হচ্ছে, আদর্শবাদী উপায়ে .emacs লেখা কি সম্ভব হবে না? গ্লোবাল স্টেট আইকি।
এহতেশ চৌধুরী

39

যদি আপনি বর্তমানে সক্রিয় বাফারে আপনার .emacs ফাইলটি খোলা পেয়ে থাকেন:

এমএক্স ইভাল-বাফার

12
এখানে সচেতন হওয়ার একটি বিষয় হ'ল এটি করা আপনাকে পুনরায় আরম্ভের পদ্ধতির অনুরূপ অবস্থায় ছেড়ে যেতে পারে না। (সহিত উদাহরণ: আপনি যদি আপনার .emacs এ "টগল" প্রভাবিত হন)।
luapyad



13

সমাধান

M-: (load user-init-file)


মন্তব্য

  • আপনি এটি Eval:প্রম্পটে টাইপ করুন (প্রথম বন্ধনী সহ)
  • user-init-file~/.emacsডিফল্টরূপে মান (কনফিগারেশন ফাইলের পথে নির্দেশ করা) একটি পরিবর্তনশীল holding
  • (load)এর সংক্ষিপ্ত, পুরানো এবং অ-ইন্টারেক্টিভ সংস্করণ (load-file); এটি কোনও ইম্যাক্স কমান্ড নয় (টাইপ করতে হবে M-x) তবে এটি কেবল একটি এলিস্প ফাংশন

উপসংহার

M-: > M-x


M-:> Ctrl Alt x? আপনার যুক্তির উপর ভিত্তি করে আমি কল্পনা করছি এম-: <সিএমএক্স যখন থ্রাই ফাইলটিতে কেবল একটি লাইন পরিবর্তন হয়? হতে পারে এটি ঠিক ==
রবার্ট হাউটন

12

অন্যরা ইতিমধ্যে আপনার প্রশ্নের উত্তর হিসাবে বর্ণিত হয়েছে, তবে আমি দেখতে পেলাম যে আমি সাধারণত লিখেছিলাম যে লাইনগুলি কার্যকর করতে চাই। তার জন্য, CtrlAltxলিস্পে ঠিক কাজ করে।


3
আরও দেখুন eval-lastsexpC-x C-e
ডেরেক Slager

সাথে C-M-x, আপনাকে "লিস্পের শেষে" হতে হবে না - আপনি C-x C-eসম্ভবত ভাবছেন ? সুন্দর জিনিসটি C-M-xহ'ল আপনি যখন বিন্দুটি কোনও ফাংশন / পরিবর্তনশীল ঘোষণার মাঝখানে থাকেন তখনও আপনি এটি শুরু করতে পারেন।
টমাস

আমি সম্ভবত সিক্স সিই ব্যবহার করার সময় লিসপ শেষ করার অভ্যাসে পড়েছিলাম into ধরার জন্য ধন্যবাদ!
বাহবার

9

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

আপনার পরিবর্তনগুলি শেষ পর্যন্ত আপনি যখন খুশি হন, তারপরে এগিয়ে যান এবং পুনরায় লোডের জন্য অন্য একটি উত্তর ব্যবহার করুন। আমার ব্যক্তিগত পছন্দটি কেবলমাত্র আপনি evalযে বিভাগে যুক্ত / পরিবর্তন করেছেন সে বিভাগটি এবং এটি যুক্ত / পরিবর্তিত কোড এবং কলের অঞ্চলটিকে হাইলাইট করে M-x eval-region। লুয়াপ্যাড পয়েন্ট হিসাবে দেখানো হয়েছে যে কোডটি মূল্যায়িত কোডটিকে ন্যূনতম করে তোলে, কোনও অনিচ্ছাকৃত পার্শ্ব-প্রতিক্রিয়া হ্রাস করে।



7
C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el

4

আমি বর্তমানে উবুন্টু 15.04 এ আছি; আমি এর জন্য একটি কী সংজ্ঞায়িত করতে চাই।
[এম-সন্নিবেশ] আমার কীবোর্ডে Alt-inোকাতে অনুবাদ করে।
এটি আপনার .emacs ফাইলে রাখুন:

(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))

3

এটি আপনার init ফাইলে সংজ্ঞায়িত করুন এবং এমএক্স-র পুনরায় লোড-ব্যবহারকারী-আরআই-ফাইল দ্বারা কল করুন

(defun reload-user-init-file()
  (interactive)
  (load-file user-init-file))

2

যদিও M-x eval-bufferকাজ করবে আপনি টগল এবং অন্যান্য অনুরূপ জিনিসগুলির সাথে সমস্যা হতে চলেছেন। আপনার .emacs (বা আপনার স্ক্র্যাচ বাফারটি যদি আপনার কেবল গোলমাল হয়ে থাকে তবে) এবং তারপরে নতুন কিছু হাইলাইট করা "চিহ্নিত" বা হাইলাইট করা আরও ভাল পদ্ধতির হতে পারে M-x eval-region। আশাকরি এটা সাহায্য করবে.


2

আপনার কনফিগারকে দ্রুত পরীক্ষা করার জন্য এখানে একটি দ্রুত এবং সহজ উপায় is আপনি C-x C-eস্বতন্ত্রভাবে নির্দিষ্ট ফাংশন সম্পাদন করতে নির্দিষ্ট লিস্পের শেষেও ব্যবহার করতে পারেন ।

সিএক্স সিএল কমান্ড চালিয়ে দেয় ইওল-লাস্ট-সেক্সপ (গ্লোবাল-ম্যাপে পাওয়া যায়), এটি ইন্টারেক্টিভ সংকলিত লিস্প ফাংশন।

এটি Cx Ce তে আবদ্ধ।

(এভাল-লাস্ট-সেক্সপ ইভাল-লাস্ট-এসএক্সপি-এআরজি-ইন্টারনাল)

পয়েন্টের আগে সেক্সপ মূল্যায়ন করুন; প্রতিধ্বনি অঞ্চলে মুদ্রণের মান। উপসর্গ যুক্তি সহ ইন্টারেক্টিভভাবে, বর্তমান বাফারে মুদ্রণ আউটপুট।

সাধারণত, এই ক্রিয়াটি ভেরিয়েবলের 'ইওলাল-এক্সপ্রেশন-প্রিন্ট-দৈর্ঘ্য' এবং 'ইওল-এক্সপ্রেশন-প্রিন্ট-স্তর' এর মান অনুযায়ী দীর্ঘ আউটপুট কেটে দেয়। শূন্যের উপসর্গ যুক্তি সহ, তবে, এরকম কোনও ছাঁটাই নেই। এই জাতীয় উপসর্গ যুক্তিটি অতিরিক্ত অতিরিক্ত বিন্যাসে (অষ্টাল, হেক্সাডেসিমাল এবং চরিত্র) মুদ্রণ করে।

যদি 'ইভাল-এক্সপ্রেশন-ডিবাগ-অন-ত্রুটি' যদি নন-শিল হয়, যা ডিফল্ট হয়, এই কমান্ডটি সমস্ত ত্রুটি ডিবাগারে প্রবেশের ব্যবস্থা করে।


2

এমএক্স ইভাল-বাফার বা এমএক্স লোড-ফাইলের মতো কমান্ডের পাশাপাশি আপনি কমান্ড লাইন থেকে একটি নতুন ইম্যাক পুনরায় চালু করতে পারেন:

emacs -q --load "init.el"

ব্যবহারের উদাহরণ stackoverflow.com/questions/44959535/company-backends-in-gnu-emacs/


ইম্যাকগুলি পুনরায় আরম্ভ না করে কীভাবে এটি করবেন তা প্রশ্ন জিজ্ঞাসা করে। প্রযুক্তিগতভাবে প্রশ্নের উত্তর দেওয়ার সময় একটি নতুন অনুলিপি প্রবর্তন করা এই প্রশ্নের আত্মার সাথে খাপ খায় না বলে মনে হয়। 😄
চৌওয়ার

0

আপনি এর মতো ইমাসের জন্য কী-বন্ডিং সেট করতে পারেন

;; reload emacs configuration
(defun reload-init-file ()
  (interactive)
  (load-file "~/.emacs"))

(global-set-key (kbd "C-c r") 'reload-init-file) 

আশা করি এটি সাহায্য করবে!


-2

আপনার যদি ইমাসের অভ্যন্তরে কোনও শেল খোলা থাকে তবে আপনি এটিও করতে পারেন:

. ~/.emacs

কয়েকটি কী স্ট্রোক সংরক্ষণ করতে পারে।

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