কীভাবে সেক্স সিসির পরে অস্থায়ী থামানো যায়?


10

আমি C-x C-cযদি ইমাসে চালাই তবে তা অবিলম্বে বন্ধ হয়ে যাবে। যদি আমি সেট confirm-kill-emacsকরতে y-or-n-pএটি বন্ধ করার আগে নিশ্চিতকরণ জন্য অনুরোধ জানানো হবে।

পরিবর্তে y-or-n-p, আমি ইমাস বন্ধ করার আগে 3 সেকেন্ডের জন্য কিছু অস্থায়ী টাইমার সেট করতে চাই। সুতরাং, আমি যদি C-x C-cএটি টিপেন তবে এটির মতো কিছু প্রদর্শন করা উচিত

ইম্যাকস 3 সেকেন্ডের মধ্যে বন্ধ হয়ে যাবে। থামাতে Cg চাপুন

আমি যদি কিছু না করি তবে এটি ইমাক্স বন্ধ করে দেওয়া উচিত, তবে আমি টিপলে C-gএটি বন্ধ হওয়া রোধ করা উচিত। আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


13

আপনি আপনার নিজের প্রিডিকেট ফাংশনটি রোল করতে পারেন যা 3 সেকেন্ড অপেক্ষা করে এবং অবিচ্ছিন্নভাবে ফিরে আসে (এটির সাথে বাধা না দেওয়া থাকলে C-g):

(setq confirm-kill-emacs
      (lambda (&rest args)
        (interactive)
        (message "Quitting in 3 seconds. Press `C-g' to stop.")
        (sleep-for 3)
        t))

বা কোনও বৈকল্পিক যা কোনও কী পড়বে:

(setq confirm-kill-emacs
      (lambda (&rest args)
        (interactive)
        (null (read-event "Quitting in 3 seconds. Hit any key to stop."
                          nil 3))))

7

আপনি প্লাস ব্যবহারের sit-forপরিবর্তে ব্যবহার করতে পারেন । এবং ফাংশনটি কোনও কমান্ড ( ) হওয়ার দরকার নেই ।sleep-fortinteractive

sit-fortযদি এটি অপেক্ষা করেছিল এবং nilযদি ব্যবহারকারী অপেক্ষাটি বাধা দেয় তবে ফিরে আসে

(setq confirm-kill-emacs
      (lambda (&rest _)
        (message "Quit in 3 sec (`C-g' or other action cancels)")
        (sit-for 3)))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.