ল্যাটেক্স মোডে ওভাররাইডিং ফিল-অনুচ্ছেদ


9

আমি fill-paragraphনির্দিষ্ট মোডে (যেমন LaTeX-modeসরবরাহ করা AucTeX) এর আচরণ পরিবর্তন করতে চাই ।

আমি কোন প্রমাণ পেতাম নতুন করে বাঁধানো পারে M-q, কিন্তু আমি ব্যবহার করছি evil-modeকার বাস্তবায়ন evil-fill-and-moveব্যবহারসমূহ fill-region। আদর্শভাবে, আমার কাস্টম ফিল ফাংশন উভয় ফাংশনকে ওভাররাইড করতে fill-paragraph(তাই এটির সাথে এটি কাজ করে M-q) এবং fill-region(সুতরাং এটি এর সাথে কাজ করে evil)।

ধরে নিলাম যে আমার একটি স্ট্যান্ডেলোন প্রোগ্রাম রয়েছে formatযা ল্যাটেক্স কোডের মাধ্যমে stdinএবং আউটপুট ফর্ম্যাট কোড দিয়ে থাকে stdout, আমি কীভাবে উপরের দুটি ফিল ফাংশন ব্যবহার করতে ওভাররাইড করব format?

(দ্রষ্টব্য: এই অনুরূপ vim'র formatprgবিকল্প।)


রিব্যান্ডিং M-qকীভাবে প্রভাবিত evil-fill-and-moveকরে? আমি মন্দ ব্যবহার করি না তাই আমি কৌতূহলী। অঞ্চলটি যদি সক্রিয় থাকে তবে fill-paragraphকল করুন fill-region। সুতরাং আপনি পরামর্শ বা fill-regionআপনার ফাংশন সঙ্গে প্রতিস্থাপন করতে পারেন ।
বংশী

আমার কোন চেষ্টা হয়নি, তবে আমি বিশ্বাস করি না। অশুভের স্বাভাবিক মোডে evil-fill-and-moveমূল অনুক্রমের gqসাথে আবদ্ধ । রিবান্ডিং M-qএই কী-বাইন্ডিংকে প্রভাবিত করবে না। কিছু অর্থে, আমার প্রশ্নটি আসলেই দুটি প্রশ্ন: 1) দুটি ফাংশন কীভাবে প্রতিস্থাপন করা যায়? 2) কিভাবে একটি বহিরাগত প্রোগ্রাম ব্যবহার করবেন? 2) এর কারণ হ'ল আমার কাছে ইতিমধ্যে একটি বাহ্যিক, নন-এলিজপ সমাধান রয়েছে।
কেভিন

1
সেক্ষেত্রে আপনি আপনার সমস্যার অংশটি সমাধান করতে পারবেন (add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))যেখানে your-fill-functionআপনার কাস্টম এলিজপ ডিফুন। এটি কেবল অচেক্সে কী কী কম্বো সেট করবে। আপনি সম্ভবত shell-command-on-regionরিপ্লেস যুক্তিটি সংজ্ঞায়িত করতে ব্যবহার করতে পারেন your-fill-function
বংশী

উত্তর:


7

2 টি ফাংশন করা ভাল, যদিও অন্যটির শর্তে কার্যকর করা যেতে পারে। অনুচ্ছেদে একটি অন্তর্নিহিত অঞ্চল হবার কারণ , তাই উভয় ক্ষেত্রেই ইনপুট আলাদা হওয়া উচিত

(defun my-format-region (beg end)
  (interactive "r")
  (shell-command-on-region beg end "format"))

(defun my-format-paragraph ()
  (interactive)
  (save-excursion
    (mark-paragraph)
    (my-format-region (point) (mark))))

অন্যদের কী-বাইন্ডিং নির্বিশেষে ফাংশনগুলির বিকল্পের জন্য, রিম্যাপ কী-বাইন্ডিংগুলি ব্যবহার করুন:

 (define-key LaTeX-mode-map [remap fill-region] 'my-format-region)
 (define-key LaTeX-mode-map [remap fill-paragraph] 'my-format-paragraph)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.