অনুসন্ধান করুন প্রতিস্থাপন দ্বারা M-%এবং !, বাফার শেষে বর্তমান অবস্থান থেকে সম্পন্ন করা হয়। পুরো বাফারের জন্য আমি কীভাবে এটি করতে পারি? ধন্যবাদ।
:%s/foo/bar
অনুসন্ধান করুন প্রতিস্থাপন দ্বারা M-%এবং !, বাফার শেষে বর্তমান অবস্থান থেকে সম্পন্ন করা হয়। পুরো বাফারের জন্য আমি কীভাবে এটি করতে পারি? ধন্যবাদ।
:%s/foo/bar
উত্তর:
এখনও আপনার শুরুর অবস্থান ধরে রাখার সময় আমি এটি সমর্থিত দেখতে পাচ্ছি না। (অনুসন্ধানের শেষে পৌঁছালে আমি বাফারের শুরুতে মোড়ানোর কোনও উপায় দেখি না))
আপনার সেরা বাজিটি M-<বাফারের শুরুতে যেতে ব্যবহার করছে, তারপরে query-replace
আপনি যখন C-uC-spaceC-uC-spaceশুরু করলেন তখন আপনার শুরুতে ফিরে যেতে চাপুন ।
transient-mark-mode
করে। অন্যথায় C-SPC C-SPC
অস্থায়ীভাবে সক্ষম হবেtransient-mark-mode
আপনি আপনার ইমাস প্রারম্ভিকরণ ফাইলটিতে নিম্নলিখিত কমান্ডটি যুক্ত করতে পারেন এবং এটি আপনার পছন্দের কীস্ট্রোকের সাথে আবদ্ধ করতে পারেন।
(defun replace-regexp-entire-buffer (pattern replacement)
"Perform regular-expression replacement throughout buffer."
(interactive
(let ((args (query-replace-read-args "Replace" t)))
(setcdr (cdr args) nil) ; remove third value returned from query---args
args))
(save-excursion
(goto-char (point-min))
(while (re-search-forward pattern nil t)
(replace-match replacement))))
ডিফল্টরূপে পুরো বাফারটিতে শব্দটি প্রতিস্থাপনের init.el
আচরণটি আপডেট করতে আপনি এটি আপনার ফাইলে যুক্ত করতে পারেন M-%
:
(defun my/query-replace (from-string to-string &optional delimited start end)
"Replace some occurrences of FROM-STRING with TO-STRING. As each match is
found, the user must type a character saying what to do with it. This is a
modified version of the standard `query-replace' function in `replace.el',
This modified version defaults to operating on the entire buffer instead of
working only from POINT to the end of the buffer. For more information, see
the documentation of `query-replace'"
(interactive
(let ((common
(query-replace-read-args
(concat "Query replace"
(if current-prefix-arg " word" "")
(if (and transient-mark-mode mark-active) " in region" ""))
nil)))
(list (nth 0 common) (nth 1 common) (nth 2 common)
(if (and transient-mark-mode mark-active)
(region-beginning)
(buffer-end -1))
(if (and transient-mark-mode mark-active)
(region-end)
(buffer-end 1)))))
(perform-replace from-string to-string t nil delimited nil nil start end))
;; Replace the default key mapping
(define-key esc-map "%" 'my/query-replace)
এবং থেকে একই আচরণ পেতে query-replace-regexp
:
(defun my/query-replace-regexp (regexp to-string &optional delimited start end)
"Replace some things after point matching REGEXP with TO-STRING. As each
match is found, the user must type a character saying what to do with
it. This is a modified version of the standard `query-replace-regexp'
function in `replace.el', This modified version defaults to operating on the
entire buffer instead of working only from POINT to the end of the
buffer. For more information, see the documentation of `query-replace-regexp'"
(interactive
(let ((common
(query-replace-read-args
(concat "Query replace"
(if current-prefix-arg " word" "")
" regexp"
(if (and transient-mark-mode mark-active) " in region" ""))
t)))
(list (nth 0 common) (nth 1 common) (nth 2 common)
(if (and transient-mark-mode mark-active)
(region-beginning)
(buffer-end -1))
(if (and transient-mark-mode mark-active)
(region-end)
(buffer-end 1)))))
(perform-replace regexp to-string t t delimited nil nil start end))
;; Replace the default key mapping
(define-key esc-map [?\C-%] 'my/query-replace-regexp)
আপনি যদি আইকিকেল ব্যবহার করেন তবে আপনি পুরো বাফার (বা একাধিক বাফার বা ফাইল বা বুকমার্ক লক্ষ্যগুলি) অনুসন্ধান এবং প্রতিস্থাপন করতে পারেন ।
এবং query-replace
(যেমন C-x h M-%
) এর বিপরীতে :
আপনি কোনও ক্রমে ম্যাচগুলি নেভিগেট করতে পারেন ।
প্রতিস্থাপনের চাহিদা রয়েছে: আপনার প্রতিটি ম্যাচ ঘুরে দেখার দরকার নেই এবং এটি প্রতিস্থাপন করা হবে কি না answer
এই সমাধানটি আমি বর্তমানে ব্যবহার করছি এটি বাফারের সূচনা থেকে শুরু হয়ে প্রতিস্থাপনের পরে পুরানো পয়েন্টে ফিরে যাবে।
(defun query-replace-from-top ()
(interactive)
(let ((orig-point (point)))
(save-excursion
(goto-char (point-min))
(call-interactively 'query-replace))
(message "Back to old point.")
(goto-char orig-point)))
(bind-key* "M-%" 'query-replace-from-top)