অই হ্যাঁ. Isearch, কি আপনি টাইপ লেখা তাদের বড় দেখায় isearch-mode-map
এবং তাদেরকে পূজা বর্তমান বাফারে ।
আইসার্ক উপস্থিতি সত্ত্বেও, মিনিবাসার ব্যবহার করে না । এটি প্রতিধ্বনি অঞ্চল ব্যবহার করে। এটি হ'ল আপনি যা দেখেন তা হ'ল প্রকৃতপক্ষে আউটপুট বার্তাগুলি, আপনার টাইপ করা অক্ষরের প্রতিধ্বনি সহ।
এটি আপনি যা চান তা করা উচিত:
(defun mydelete ()
"Delete the failed portion of the search string, or the last char if successful."
(interactive)
(with-isearch-suspended
(setq isearch-new-string
(substring
isearch-string 0 (or (isearch-fail-pos) (1- (length isearch-string))))
isearch-new-message
(mapconcat 'isearch-text-char-description isearch-new-string ""))))
(define-key isearch-mode-map (kbd "DEL") 'mydelete)
(বিটিডাব্লু, আপনার প্রশ্নটি delete
চরিত্রটি বলে , তবে আপনি লিখেছেন DEL
, যা ব্যাকস্পেসের অক্ষর)
@ মালবারবা কোনও মন্তব্যে উল্লেখ করেছেন, আপনি যখন নতুন অনুসন্ধান স্ট্রিংটি ""
(খালি স্ট্রিং) এ সেট করেন with-isearch-suspended
, খালি অনুসন্ধান স্ট্রিংয়ের পরিবর্তে শেষ অনুসন্ধান স্ট্রিংটি অনুসন্ধান করে আবার শুরু হয়।
এটি সাধারণভাবে একটি " বৈশিষ্ট্য " with-isearch-suspended
। কিন্তু কারণ আপনার মাঝে মাঝে সত্যিই পুনরারম্ভ জন্য অনুসন্ধান স্ট্রিং খালি সংস্করণ এ, চাইতে পারেন with-isearch-suspended
মধ্যে isearch + + .el আমি জুড়েছেন পরিবর্তনশীল isearchp-if-empty-prefer-resuming-with-last
এই নিয়ন্ত্রণ করতে। যদি আপনি এটির সাথে আবদ্ধ হন nil
এবং আপনি সেট isearch-new-string
করে ""
রেখেছেন তবে খালি অনুসন্ধান স্ট্রিং সহ অনুসন্ধান পুনরায় শুরু হবে।
সুতরাং আইসার্ক + এর মাধ্যমে আপনি এই সংজ্ঞাটি দিয়ে যা করতে চান তা করতে পারেন:
(defun mydelete ()
"Delete the failed portion of the search string, or the last char if successful."
(interactive)
(let ((isearchp-if-empty-prefer-resuming-with-last nil))
(with-isearch-suspended
(setq isearch-new-string
(substring
isearch-string 0 (or (isearch-fail-pos) (1- (length isearch-string))))
isearch-new-message
(mapconcat 'isearch-text-char-description isearch-new-string "")))))
আমি খুব এখন যে এ গিয়ে Emacs 24.4 একটি রিগ্রেশন, যা আমি দায়ের করেছি চালু লক্ষ্য এ গিয়ে Emacs বাগ # 20466 জন্য, যার মানে বাঁধাই DEL
মধ্যে isearch-mode-map
যথেষ্ট নয়। তারা এর জন্য একটি <backspace>
ছাড়াও আলাদা স্বতন্ত্র বাধ্যবাধকতা যুক্ত করেছে DEL
। এর অর্থ হ'ল ইশার্কের জন্য <backspace>
আর অনুবাদ করা DEL
হবে না (তবে এটি এখনও সাধারণভাবে ইম্যাকসের জন্য অনুবাদ করা যায় না)।
সুতরাং আপনি যদি ব্যাকস্পেস কীটি ইমাস 24.4 বা তারপরে যা বলেছিলেন তা করতে চাইলে আপনি কেবল তার সাথে আবদ্ধ DEL
হতে পারবেন না mydelete
। আপনি আবদ্ধ <backspace>
করা প্রয়োজন mydelete
। বোবা, এএএএফসিটি , মাইস অন ইরেট পাস লে প্রগ্রেস ...
আমি একটি অনুরূপ কমান্ড জুড়েছেন Isearch + + এবং এটি আবদ্ধ C-M-l
(একই একটি সমাপ্তির মেলেনি মুছে ফেলার জন্য ব্যবহার কী icicles )।
এও সচেতন থাকুন যে C-g
আইশার্ক-এও মিল থাকবে না, যখন মিল নেই। (তবে C-g
অনুসন্ধান সফল হলে এর একটি প্রভাবও রয়েছে))
আমার উল্লেখ করা উচিত ছিল যে আইসার্ক + এর বেশিরভাগ সময় একই ধরণের লাইনের সাথে একটি alচ্ছিক আচরণও ছিল। M-k
আইশার্ক চলাকালীন 3 টি আচরণের মধ্যে টগল করে, যা বিকল্পের মান দ্বারা নিয়ন্ত্রিত হয় isearchp-drop-mismatch
:
replace-last
- আপনার বর্তমান ইনপুটটি সর্বশেষ মেলানো পাঠ্যের পরিবর্তে। মিল না থাকলেও আপনি সর্বদা আপনার শেষ ইনপুটটি দেখতে পারেন। এবং এটি ব্যবহার করে সম্পাদনা করার জন্য উপলব্ধ M-e
।
nil
- আপনার পূর্ববর্তী ইনপুটটির মিল না থাকলেও আপনার বর্তমান ইনপুট সংযুক্ত করা হয়েছে।
অন্য যে কোনও কিছুই - আপনার বর্তমান ইনপুটটি যদি কোনও অমিলের কারণ হয় তবে তা উপেক্ষা করা হবে (সরানো)। অনুসন্ধানের স্ট্রিংটিতে সর্বদা সফল মিল রয়েছে।