আমি সাধারণত ফাইলগুলিতে কাজ করি যা সংস্করণ নিয়ন্ত্রণের মাধ্যমে ফাইল সিস্টেমে আপডেট হয়। C-x C-f
আবার ফাইল না রেখে কোনও ফাইল পুনরায় লোড করার দ্রুত উপায় কী এবং আমি যদি এটি পুনরায় লোড করতে চাই তবে জিজ্ঞাসা করা না যায়?
আমি সাধারণত ফাইলগুলিতে কাজ করি যা সংস্করণ নিয়ন্ত্রণের মাধ্যমে ফাইল সিস্টেমে আপডেট হয়। C-x C-f
আবার ফাইল না রেখে কোনও ফাইল পুনরায় লোড করার দ্রুত উপায় কী এবং আমি যদি এটি পুনরায় লোড করতে চাই তবে জিজ্ঞাসা করা না যায়?
উত্তর:
M-x revert-buffer
আপনি যা চান ঠিক তাই করবে এটি এখনও নিশ্চিতকরণের জন্য জিজ্ঞাসা করবে।
অন্য বিকল্প (আমার প্রিয়) নীচের ফাংশন:
;; Source: http://www.emacswiki.org/emacs-en/download/misc-cmds.el
(defun revert-buffer-no-confirm ()
"Revert buffer without confirmation."
(interactive)
(revert-buffer :ignore-auto :noconfirm))
(revert-buffer t (not (buffer-modified-p)) t)
।
রয়েছে auto-revert-mode
যা এটি স্বয়ংক্রিয়ভাবে কাজ করে এবং আপনি তার সম্বন্ধে ফীডব্যাক দেয়।
ডক স্ট্রিং থেকে:
auto-revert-mode is an interactive autoloaded compiled Lisp function
in `autorevert.el'.
(auto-revert-mode &optional ARG)
Toggle reverting buffer when the file changes (Auto Revert mode).
With a prefix argument ARG, enable Auto Revert mode if ARG is
positive, and disable it otherwise. If called from Lisp, enable
the mode if ARG is omitted or nil.
Auto Revert mode is a minor mode that affects only the current
buffer. When enabled, it reverts the buffer when the file on
disk changes.
Use `global-auto-revert-mode' to automatically revert all buffers.
Use `auto-revert-tail-mode' if you know that the file will only grow
without being changed in the part that is already in the buffer.
আরেকটি বিকল্প, যা আমি ব্যবহার করি তা find-alternate-file
বাধ্য C-x C-v
। এটি আপনার বর্তমান বাফারটিকে পুনরায় ব্যবহার করে একটি ফাইল খুলবে।
ডিফল্টরূপে, এটি আপনি বর্তমানে যে ফাইলটিতে আছেন সেটি নির্দেশ করে, তাই আপনি কেবল C-x C-v RET
নিজের ফাইলটি পুনরায় লোড করতে টাইপ করতে পারেন । আপনার বাফার সংরক্ষণে থাকা ডেটা না থাকলে এটি প্রম্পট করা হবে না।
মত কিছু অ-পাঠ্য মোড image-mode
এবং (রেন্ডারিং ছবি, PDF, svgs ... ইত্যাদি জন্য ব্যবহৃত) dired
আছে revert-buffer
আবদ্ধ g
দ্রুত অ্যাক্সেসের জন্য।
C-x C-v
।
ইমাকস এটিকে কল করে reverting
।
আপনি বর্তমান ফাইলটি এর সাথে ফিরিয়ে নিতে পারেন M-x revert-buffer
। এটি ভেরিয়েবলের তালিকাভুক্ত প্যাটার্নগুলির সাথে মেলে এমন ফাইলগুলি বাদ দিয়ে ফাইলটি পরিবর্তন হয়েছে কিনা তা নিশ্চিতকরণের জন্য অনুরোধ করে revert-without-query
(বিশদটির জন্য ম্যানুয়ালটি দেখুন)। আর একটি অনিয়মিত বিরক্তি revert-buffer
হ'ল এটি ফাইল মোডটি ডিফল্টর মধ্যে পুনরায় সেট করে।
আমি নাম দ্বারা প্রদত্ত একগুচ্ছ ফাইলগুলি ফিরতে নীচের ফাংশনটি ব্যবহার করি। কিছু বাফারে যদি ফাইল খোলা না থাকে তবে তা উপেক্ষা করা হবে।
(defun revert-files (&rest files)
"Reload all specified files from disk.
Only files that are currently visited in some buffer are reverted.
Do not ask confirmation unless the buffer is modified."
(save-excursion
(let ((revert-without-query '("")))
(dolist (file-name files)
(message "Considering whether to revert file %s" file-name)
(let ((buf (find-buffer-visiting file-name)))
(when buf
(message "Reverting file in buffer %s" (buffer-name buf))
(set-buffer buf)
(revert-buffer t nil t)))))))
সংস্করণ নিয়ন্ত্রণ থেকে ফাইলগুলি আপডেট করার পরে এই ফাংশনের জন্য একটি সাধারণ ব্যবহারের ক্ষেত্র। আপডেট হওয়া সমস্ত ফাইলগুলিতে emacsclient
কল revert-files
করার জন্য ব্যবহার করুন বা আপডেটটি সম্পর্কিত সমস্ত ফাইলগুলিতে (এটি সহজ, এবং কেবল কিছুটা ধীর)। আমি নিম্নলিখিত শেল স্ক্রিপ্ট কল, এটি আর্গুমেন্ট হিসাবে ফাইল পাস:
#! /bin/sh
# Similar to gnuclient, but call `revert-files' on the files.
files=
## Find a way to convert a path to absolute. Bizarre OSes such as Windows
## require special cases. We also try to detect non-filenames such as URIs.
case `uname -s` in
CYGWIN*)
absolute_path () {
cygpath -a -w -- "$1"
};;
*)
wd="`pwd -P 2>/dev/null || pwd`"
absolute_path () {
case "$1" in
/*) printf '%s' "$1";; # ordinary absolute path
*:/*)
if expr "z$1" : 'z[0-9A-Z_a-z][-.0-9@A-Z_a-z]*:/.*'; then
printf '%s' "$1" # URI or machine:/some/path
else
printf '%s' "$wd/$1" # default to a relative path
fi;;
*) printf '%s' "$wd/$1";; # default to a relative path
esac
};;
esac
for x; do
files="$files \"`absolute_path "$x" | sed 's/[\\\\\\\"]/\\\\&/g'`\""
done
exec emacsclient -e "(revert-files$files)"
ব্যবহারের উদাহরণ:
svn update
find -name .svn -prune -o -type f -exec emacsclient-revert {} +
আপনি নীচে প্রদর্শিত হিসাবে গ্লোবাল-অটো-রিভার্ট-মোড সক্ষম করতে পারবেন
(global-auto-revert-mode 1)
আপনি যখন জেএসসি-র মতো অটো ফিক্স মোড সক্ষম করে আপনার জেএস ফাইলগুলির প্রচুর চেক করেন তখন এটি সহায়ক।
আপনি ডিফল্টরূপে find-alternate-file
আবদ্ধ হয়ে ব্যবহার করতে পারেন C-x C-vএবং কেবল RETফাইলটি পুনরায় লোড করার জন্য প্রম্পটে টাইপ করুন।
স্পেসম্যাক ব্যবহারকারীদের জন্য: SPC b R
( spacemacs/safe-revert-buffer
)।
নিশ্চিতকরণ এড়ানোর জন্য, অন্যান্য উত্তরগুলি ইতিমধ্যে এটি কভার করে, যদিও আমি অন্যদের সাথে একমত হই যে এটিকে কোনও কী দিয়ে বাঁধাই সম্ভবত ভাল ধারণা নয়।
ম্যাজিট স্বয়ংক্রিয়ভাবে আপনার জন্য ফাইলের বিপরীত পরিচালনা করে, এইভাবে আপনার মূল সমস্যাটি সমাধান করে। আপনি এর অন্যান্য বৈশিষ্ট্যগুলি থেকেও উপকৃত হন।
আপনার আগ্রহী সেটিংসটি টুইট করার জন্য এখানে ডক্স রয়েছে:
যদি আপনি ম্যাজিটের সাথে লেগে থাকেন তবে কাজটি হারাতে এড়াতে 3 টি গ্লোবাল ডাব্লুআইপি মোডগুলি (ওয়ার্ক ইন প্রগ্রেস) সক্ষম করার বিষয়ে নিশ্চিত হন ।
আপনি এইভাবে ম্যাগিটের সাহায্যে ইমাসের অভ্যন্তরে সংস্করণ-নিয়ন্ত্রণ ক্রিয়া সম্পাদন করতে পারেন এবং আপনার মূল সমস্যাটি পুরোপুরি এড়াতে পারেন।
misc-cmds.el
। এটি জটিল নয় এমন নয়, তবে আপনি ঠিক কিছু অনুলিপি করার সময় উত্সকে দেখানো সাধারণ সৌজন্য কাজ।