গিটের সাথে সংস্করণ নিয়ন্ত্রণের অধীনে কোনও প্রকল্পে কাজ করার সময়, আমি প্রায়শই শেলটিতে এমন কিছু কাজ করতে চাই যা আমার অনেকগুলি মুক্ত ফাইলগুলিকে প্রভাবিত করে, তবে আমি যে নতুন বাফারটি খোলামেলাভাবে নতুন সংস্করণটি ক্লোবার না করে তা নিশ্চিত করার জন্য আমার যে সমস্ত বাফার খোলা আছে তা ফিরিয়ে দিন আমি যা খুলেছিলাম তা দিয়ে আমি জানি magit
এখানে সহায়ক হতে পারে তবে আমি শেলটিতে আমার ওয়ার্কফ্লোতে অভ্যস্ত এবং আমি এটি আপাতত রাখতে চাই। সুতরাং পরিবর্তে, আমি সমস্ত খোলা বাফারগুলি ফিরিয়ে আনতে চাই এবং বিদ্যমান থাকা বন্ধ করে দেওয়া যেকোনটি বন্ধ করে দিতে পারি (উদাহরণস্বরূপ git checkout
যে শাখার আর সেই ফাইল নেই has
আমার কাছে এলিজপের নীচের স্নিপেট রয়েছে যা আমি গুগল অনুসন্ধান থেকে ধরেছিলাম:
(defun revert-all-buffers ()
"Refreshes all open buffers from their respective files"
(interactive)
(let* ((list (buffer-list))
(buffer (car list)))
(while buffer
(when (and (buffer-file-name buffer)
(not (buffer-modified-p buffer)))
(set-buffer buffer)
(revert-buffer t t t))
(setq list (cdr list))
(setq buffer (car list))))
(message "Refreshed open files"))
কিন্তু এই বিরতি যদি এটা আমার ফাইল খুলুন এক, অর্থাত যখন প্রত্যাবর্তন একটি ত্রুটি হিট B1
, B2
, B3
, ..., Bn
রূপে ফিরিয়ে নিয়ে যেতে চেষ্টা করার সময় একটি ত্রুটি B2
প্রতিরোধ B3
- Bn
থেকে প্রত্যাবর্তন করা হচ্ছে।
এই ক্ষেত্রে পপ আপ হওয়া কোনও ত্রুটি উপেক্ষা করতে আমি কীভাবে ইম্যাক্সকে বলতে পারি? আমি ব্যবহার করতে চাই না global-auto-revert-mode
কারণ প্রত্যেকটি রিভার্ট কিছু ভারী শুল্ক সামগ্রী যেমন ট্রিট করে তোলে যেমন আমার অটো-সম্পূর্ণ এবং সিনট্যাক্স চেকার ফাইলটির পুনরায় পার্সিং, এক মুহূর্তের জন্য ইম্যাকগুলি ঝুলিয়ে রাখে।
C-x s
"file no longer exists"
.. আহা! আমার সংস্করণটি ঠিক করে দিয়েছে :) এটি শীঘ্রই পোস্ট করবে।
B2
আপনার উদাহরণে বাফারটিকে ফিরিয়ে আটকায় । আমি একটি খুব অনুরূপ ফাংশন ব্যবহার করি (সম্ভবত এই স্নিপেট থেকে প্রাপ্ত) এবং এটি দুর্দান্ত কাজ করেছে।