ইম্যাকগুলি পুনরায় .emacs
আরম্ভ না করে আমি যে সমস্ত সংজ্ঞাগুলি আপডেট করেছি সেগুলি পুনরায় লোড করার জন্য আমি কীভাবে ইম্যাক্স পাব ?
ইম্যাকগুলি পুনরায় .emacs
আরম্ভ না করে আমি যে সমস্ত সংজ্ঞাগুলি আপডেট করেছি সেগুলি পুনরায় লোড করার জন্য আমি কীভাবে ইম্যাক্স পাব ?
উত্তর:
আপনি কমান্ড লোড-ফাইল ব্যবহার করতে পারেন ( M-x load-file
তারপরে ডিফল্ট ফাইল নামটি গ্রহণ করতে দুবার রিটার্ন টিপুন, যা বর্তমান ফাইলটি সম্পাদনা করা হচ্ছে)।
আপনি যে কোনও সেক্সপ এর শেষে কেবল বিন্দুটি সরাতে পারেন এবং C-xC-eঠিক সেই সেক্সপকে সম্পাদন করতে টিপতে পারেন। সাধারণত আপনি যদি কেবল একটি লাইন বা দুটি পরিবর্তন করেন তবে পুরো ফাইলটি পুনরায় লোড করার প্রয়োজন হয় না।
defun
বা এর পিছনে মুভিং পয়েন্টের পরিবর্তে defvar
, আপনি এটিকে ঘোষণার বডি এবং টাইপ করতে পারেন C-M-x
। খুব সহজ।
খুব আশ্চর্যজনক যে খুব সুবিধাজনক
M-x eval-buffer
এখানে উল্লেখ করা হয় না।
এটি তাত্ক্ষণিকভাবে বাফারের সমস্ত কোডের মূল্যায়ন করে, এটির দ্রুততম পদ্ধতি, যদি আপনার .emacs
আদর্শবান হয়।
.emacs
আদর্শবান (বা হতে হবে)?
.emacs
না হওয়ার বিষয়টি কখন বুঝবে ?
আপনি সাধারণত পরিবর্তিত অঞ্চলটিকে পুনরায় মূল্যায়ন করতে পারেন। আপনি পরিবর্তন করেছেন এমন ~ / .emacs অঞ্চল চিহ্নিত করুন এবং তারপরে ব্যবহার করুন M-x eval-region RET
। এটি পুরোপুরি পুনরায় মূল্যায়নের চেয়ে অনেক বেশি নিরাপদ যেহেতু .emacs ফাইলটি লিখতে সহজ যা দুবার লোড হওয়ার পরেও ঠিক কাজ করে না।
যদি আপনি বর্তমানে সক্রিয় বাফারে আপনার .emacs ফাইলটি খোলা পেয়ে থাকেন:
এমএক্স ইভাল-বাফার
M-x load-file
~/.emacs
M-: (load user-init-file)
Eval:
প্রম্পটে টাইপ করুন (প্রথম বন্ধনী সহ)user-init-file
~/.emacs
ডিফল্টরূপে মান (কনফিগারেশন ফাইলের পথে নির্দেশ করা) একটি পরিবর্তনশীল holding (load)
এর সংক্ষিপ্ত, পুরানো এবং অ-ইন্টারেক্টিভ সংস্করণ (load-file)
; এটি কোনও ইম্যাক্স কমান্ড নয় (টাইপ করতে হবে M-x) তবে এটি কেবল একটি এলিস্প ফাংশনM-:
> M-x
অন্যরা ইতিমধ্যে আপনার প্রশ্নের উত্তর হিসাবে বর্ণিত হয়েছে, তবে আমি দেখতে পেলাম যে আমি সাধারণত লিখেছিলাম যে লাইনগুলি কার্যকর করতে চাই। তার জন্য, CtrlAltxলিস্পে ঠিক কাজ করে।
eval-lastsexp
এC-x C-e
C-M-x
, আপনাকে "লিস্পের শেষে" হতে হবে না - আপনি C-x C-e
সম্ভবত ভাবছেন ? সুন্দর জিনিসটি C-M-x
হ'ল আপনি যখন বিন্দুটি কোনও ফাংশন / পরিবর্তনশীল ঘোষণার মাঝখানে থাকেন তখনও আপনি এটি শুরু করতে পারেন।
আমি পরামর্শ দিচ্ছি আপনি প্রথম দিকে এটি করবেন না। পরিবর্তে, একটি নতুন ইমাস সেশন শুরু করুন এবং সেগুলি সঠিকভাবে কাজ করে কিনা তা দেখার জন্য আপনি যা কিছু পরিবর্তন করেছেন তা পরীক্ষা করুন। এটি করার কারণ হ'ল আপনাকে এমন অবস্থায় ফেলে রাখা এড়াতে হবে যেখানে আপনার একটি অক্ষম .emacs ফাইল রয়েছে, যা লোড করতে ব্যর্থ হয় বা পরিষ্কারভাবে লোড করতে ব্যর্থ হয়। আপনি যদি আসল আসরে আপনার সমস্ত সম্পাদনা এবং একটি নতুন সেশনে আপনার সমস্ত পরীক্ষা করে থাকেন তবে আপনার কাছে সর্বদা আপত্তিকর কোডটি মন্তব্য করার জন্য নির্ভরযোগ্য কিছু থাকবে।
আপনার পরিবর্তনগুলি শেষ পর্যন্ত আপনি যখন খুশি হন, তারপরে এগিয়ে যান এবং পুনরায় লোডের জন্য অন্য একটি উত্তর ব্যবহার করুন। আমার ব্যক্তিগত পছন্দটি কেবলমাত্র আপনি eval
যে বিভাগে যুক্ত / পরিবর্তন করেছেন সে বিভাগটি এবং এটি যুক্ত / পরিবর্তিত কোড এবং কলের অঞ্চলটিকে হাইলাইট করে M-x eval-region
। লুয়াপ্যাড পয়েন্ট হিসাবে দেখানো হয়েছে যে কোডটি মূল্যায়িত কোডটিকে ন্যূনতম করে তোলে, কোনও অনিচ্ছাকৃত পার্শ্ব-প্রতিক্রিয়া হ্রাস করে।
কীবোর্ড শর্টকাট:
(defun reload-init-file ()
(interactive)
(load-file user-init-file))
(global-set-key (kbd "C-c C-l") 'reload-init-file) ; Reload .emacs file
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
আমি বর্তমানে উবুন্টু 15.04 এ আছি; আমি এর জন্য একটি কী সংজ্ঞায়িত করতে চাই।
[এম-সন্নিবেশ] আমার কীবোর্ডে Alt-inোকাতে অনুবাদ করে।
এটি আপনার .emacs ফাইলে রাখুন:
(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
এটি আপনার init ফাইলে সংজ্ঞায়িত করুন এবং এমএক্স-র পুনরায় লোড-ব্যবহারকারী-আরআই-ফাইল দ্বারা কল করুন
(defun reload-user-init-file()
(interactive)
(load-file user-init-file))
যদিও M-x eval-buffer
কাজ করবে আপনি টগল এবং অন্যান্য অনুরূপ জিনিসগুলির সাথে সমস্যা হতে চলেছেন। আপনার .emacs (বা আপনার স্ক্র্যাচ বাফারটি যদি আপনার কেবল গোলমাল হয়ে থাকে তবে) এবং তারপরে নতুন কিছু হাইলাইট করা "চিহ্নিত" বা হাইলাইট করা আরও ভাল পদ্ধতির হতে পারে M-x eval-region
। আশাকরি এটা সাহায্য করবে.
আপনার কনফিগারকে দ্রুত পরীক্ষা করার জন্য এখানে একটি দ্রুত এবং সহজ উপায় is আপনি C-x C-e
স্বতন্ত্রভাবে নির্দিষ্ট ফাংশন সম্পাদন করতে নির্দিষ্ট লিস্পের শেষেও ব্যবহার করতে পারেন ।
সিএক্স সিএল কমান্ড চালিয়ে দেয় ইওল-লাস্ট-সেক্সপ (গ্লোবাল-ম্যাপে পাওয়া যায়), এটি ইন্টারেক্টিভ সংকলিত লিস্প ফাংশন।
এটি Cx Ce তে আবদ্ধ।
(এভাল-লাস্ট-সেক্সপ ইভাল-লাস্ট-এসএক্সপি-এআরজি-ইন্টারনাল)
পয়েন্টের আগে সেক্সপ মূল্যায়ন করুন; প্রতিধ্বনি অঞ্চলে মুদ্রণের মান। উপসর্গ যুক্তি সহ ইন্টারেক্টিভভাবে, বর্তমান বাফারে মুদ্রণ আউটপুট।
সাধারণত, এই ক্রিয়াটি ভেরিয়েবলের 'ইওলাল-এক্সপ্রেশন-প্রিন্ট-দৈর্ঘ্য' এবং 'ইওল-এক্সপ্রেশন-প্রিন্ট-স্তর' এর মান অনুযায়ী দীর্ঘ আউটপুট কেটে দেয়। শূন্যের উপসর্গ যুক্তি সহ, তবে, এরকম কোনও ছাঁটাই নেই। এই জাতীয় উপসর্গ যুক্তিটি অতিরিক্ত অতিরিক্ত বিন্যাসে (অষ্টাল, হেক্সাডেসিমাল এবং চরিত্র) মুদ্রণ করে।
যদি 'ইভাল-এক্সপ্রেশন-ডিবাগ-অন-ত্রুটি' যদি নন-শিল হয়, যা ডিফল্ট হয়, এই কমান্ডটি সমস্ত ত্রুটি ডিবাগারে প্রবেশের ব্যবস্থা করে।
এমএক্স ইভাল-বাফার বা এমএক্স লোড-ফাইলের মতো কমান্ডের পাশাপাশি আপনি কমান্ড লাইন থেকে একটি নতুন ইম্যাক পুনরায় চালু করতে পারেন:
emacs -q --load "init.el"
ব্যবহারের উদাহরণ stackoverflow.com/questions/44959535/company-backends-in-gnu-emacs/
আপনি এর মতো ইমাসের জন্য কী-বন্ডিং সেট করতে পারেন
;; reload emacs configuration
(defun reload-init-file ()
(interactive)
(load-file "~/.emacs"))
(global-set-key (kbd "C-c r") 'reload-init-file)
আশা করি এটি সাহায্য করবে!