উত্তর:
এই বাফারটিকে কিছুটা ব্যবহারকারী-পঠনযোগ্য হিসাবে পুনরায় ফর্ম্যাট করতে ইতিমধ্যে কার্যকারিতা বিদ্যমান?
অবশ্যই, এবং আপনার কাছে প্রচুর বিকল্প রয়েছে। আমি সম্ভবত এটি ব্যবহার করে এটি কোনও বহিরাগত প্রোগ্রামগুলিতে খাওয়াতাম:
C-x h C-u M-| xmllint --format - RET
এই প্রোগ্রামের সাথে আসে libxml2
। আপনি ব্যবহার করতে পারে tidy
। কমান্ডলাইন এক্সএমএল ফর্ম্যাটিং সরঞ্জামগুলির একটি তালিকা এখানে রয়েছে: /programming/
আপনি একটি অনুসন্ধান এবং প্রতিস্থাপন এবং তারপরে ইনডেন্টও করতে পারেন:
M-% > < RET > C-q C-j < RET ! C-M-\
ঝরঝরে কৌতুক: আপনি কপি এবং উপরের স্ট্রিং আটকে দিতে পারেন M-:
( eval-expression
ভালো):
(execute-kbd-macro (kbd "M-% > < RET > C-q C-j < RET ! C-M-\\"))
C-u
উপসর্গের কারণে ।
অন্তর্নির্মিত sgml-mode
এই কাজ করতে একটি কমান্ডটি রয়েছে: sgml-pretty-print
। আপনি যদি এতে থাকেন nxml-mode
তবে মনে হচ্ছে আপনার sgml-mode
প্রথমে স্যুইচ করা দরকার । অস্থায়ীভাবে এসএইচএমএল-মোডে স্যুইচ করতে, প্রিটি-প্রিন্ট চালাতে, আবার এনএক্সএমএল-মোডে ফিরে যেতে আপনি একটি আদেশ লিখতে পারেন।
উদাহরণস্বরূপ, এখানে একটি আদেশ রয়েছে যা এই অঞ্চলটি প্রিন্ট করবে, autoচ্ছিকভাবে স্বয়ংক্রিয়-পূরণ সক্ষম করে:
(defun xml-pretty-print (beg end &optional arg)
"Reformat the region between BEG and END.
With optional ARG, also auto-fill."
(interactive "*r\nP")
(let ((fill (or (bound-and-true-p auto-fill-function) -1)))
(sgml-mode)
(when arg (auto-fill-mode))
(sgml-pretty-print beg end)
(nxml-mode)
(auto-fill-mode fill)))
এটি আপনার লিখুন ~/.emacs.d/init.el
:
(require 'sgml-mode)
(defun ninrod/reformat-xml ()
(interactive)
(save-excursion
(sgml-pretty-print (point-min) (point-max))
(indent-region (point-min) (point-max))))
ইম্যাকগুলি পুনরায় লোড করুন, তারপরে কেবল কল করুন M-x reformat-xml
খারাপভাবে ফর্ম্যাট করা এক্সএমএল বাফারটি করুন।
উত্স: https://davidcapello.com/blog/emacs/reformat-xML-on-emacs/
উপরের উত্তরের ইঙ্গিতটি অনুসরণ করে এবং ধরে নিই যে আপনি tidy
কোনও তারতম্য ইনস্টল করেছেন:
`C-x h M-| tidy -quiet -xml -utf8 -indent -`
এটি বাফারের *Shell Command Output*
সামগ্রীগুলি সরাসরি প্রতিস্থাপনের পরিবর্তে একটি নতুন বাফার খুলবে । ফলাফলটি যাচাই করার পরে, পুরানো সামগ্রীগুলি নতুন দিয়ে এর সাথে প্রতিস্থাপন করুন:
C-x h M-insert-buffer
প্রস্তাবিত ডিফল্ট চয়ন করুন যা সম্ভবত হবে *Shell Command Output*
। আপনি কীবোর্ড ম্যাক্রো দিয়ে কমান্ডটি পরে সংরক্ষণ করতে পারেন:
C-x ( C-x h M-| tidy -quiet -xml -utf8 -indent - C-x)
C-x C-k n pretty-xml
এটি দিয়ে M-x pretty-xml
আপনি বাফারটিকে পুনরায় ফর্ম্যাট করতে এক্সিকিউট করতে পারেন ।