যখন আমি কি M-x query-replace
সব ঘটনার প্রতিস্থাপন v
দ্বারা w
, তাহলে এটি আরো ম্যাচ V
(বড় হাতের V
)। কিভাবে কেবল ছোট হাতের সন্ধান করতে ইমাসকে বাধ্য করা যায় v
?
যখন আমি কি M-x query-replace
সব ঘটনার প্রতিস্থাপন v
দ্বারা w
, তাহলে এটি আরো ম্যাচ V
(বড় হাতের V
)। কিভাবে কেবল ছোট হাতের সন্ধান করতে ইমাসকে বাধ্য করা যায় v
?
উত্তর:
(customize-set-variable case-fold-search nil)
অথবা আপনার নিজস্ব কমান্ডে সেই পরিবর্তনশীল (বিকল্প) বাঁধুন যা অন্যথায় কেবল একটি মোড়ক query-replace
। এটির সুবিধা রয়েছে যে এটি ক্যোয়ারী-প্রতিস্থাপনের বাইরে সাধারণ ব্যবহারের জন্য পরিবর্তনশীল মান পরিবর্তন করে না doesn't
পরিবর্তনশীলও দেখুন case-replace
, যা প্রতিস্থাপন পাঠ্যের ক্ষেত্রে কেস নিয়ন্ত্রণ করে।
C-h f query-replace
উদাহরণস্বরূপ, যেখানে এটি বলা হয়েছে তাও দেখুন See
মিল যদি
case-fold-search
শূন্য থাকে এবং FROM-STRING তে কোনও বড় হাতের অক্ষর না থাকে তবে ম্যাচটি ক্ষেত্রে স্বতন্ত্র । প্রতিস্থাপনটি পুরানো পাঠ্যের কেস প্যাটার্নটি নতুন পাঠ্যে স্থানান্তর করে, যদিcase-replace
এবংcase-fold-search
শূন্য থাকে এবং FROM-STRING এর বড় হাতের অক্ষর না থাকে
নীচের মন্তব্যগুলি এবং ইমাকস বাগ # 20687 দেখুন , যেখানে perform-replace
আপনি কেস ফোল্ডিংয়ের সময় টগল করতে দিতে কীভাবে প্যাচ করতে পারেন তা দেখান query-replace
।
এটিও নোট করুন যে perform-replace
বাঁধাগুলির জন্য বিদ্যমান কোডটি case-fold-search
এই পদ্ধতিতে (যে চলকগুলির উপর নির্ভর করে তা নোট করুন):
(case-fold-search (if (and case-fold-search search-upper-case)
(isearch-no-upper-case-p from-string regexp-flag)
case-fold-search))
case-fold-search
সময় আমরা যেমন করতে পারি তেমন উড়তে পরিবর্তন করা উচিত । তবে দুর্ভাগ্যক্রমে এর মোড মানচিত্র রয়েছে। isearch
M-c
query-replace
query-replace-map
: (defun toggle-case () (interactive) (setq case-fold-search (not case-fold-search)))
এবং (define-key query-replace-map "C" 'toggle-case)
। তবে সেই মানচিত্রে কীগুলি পরিচালনা করা কঠোর কোডে রয়েছে perform-replace
। আপনি তা করতে চাইবেন M-x report-emacs-bug
, পেতে perform-replace
আরো সবিস্তার হতে কোড, তাই কি মানচিত্রে যোগ করা যেতে পারে। এটির কমপক্ষে একটি ফ্যালব্যাক ক্লজ থাকা উচিত যা কেবলমাত্র সিএমডি-কে কী দিয়ে আবদ্ধ করে।
query-replace-map
আগে পাইনি তা নিশ্চিত নয় ।
perform-replace
একটি অতিরিক্ত cond
ধারা যুক্ত করতে সংশোধন করুন যা আপনার দ্বারা সংজ্ঞায়িত কীটি ডেকে আনে query-replace-map
। নতুন ধারাটি ধরা-সমস্ত t
ধারাটির ঠিক আগে রাখুন । এই নতুন দফা হল: (def (call-interactively def))
। সহজ হতে পারে না।
(customize-set-variable case-fold-search nil)
ত্রুটি দেয় customize-set-variable: Attempt to set a constant symbol: nil
। এছাড়াও আমি উভয় চেষ্টা (setq case-fold-search nil)
এবং (setq case-replace nil)
কিন্তু ক্যোয়ারী এখনও বড় হাতের ভি মেলে