next-error
সংকলন-ত্রুটিগুলি বাফারটি স্ক্রোল করে না , যাতে বর্তমান ত্রুটিটি উইন্ডোটির প্রথম লাইন হিসাবে প্রদর্শিত হয়?
যদি তা না হয় তবে এটি কমপক্ষে কার্সারটিকে বর্তমান ত্রুটিরেখায় রাখে না? যদি এটি হয় এবং কার্সারটি আপনার পক্ষে যথেষ্ট পরিমাণে দৃশ্যমান না hl-line-mode
হয় তবে বর্তমান লাইনটি হাইলাইট করার জন্য ব্যবহার বিবেচনা করুন । অথবা crosshairs
বর্তমান লাইন এবং বর্তমান কলামটি হাইলাইট করতে লাইব্রেরি ব্যবহার বিবেচনা করুন ।
আপনার মন্তব্যের পরে আপডেট করুন
আমি ভেবেছিলাম আপনি next-error
বাফারে ডাকছেন *compilation*
। যদি আপনি এটি করেন তবে লাইনটি শীর্ষে স্ক্রোল করা হবে, যেমনটি আমি বর্ণনা করেছি।
কিন্তু আপনি যদি invoking হয় next-error
বাইরে বাফার *compilation*
তারপর আপনি ব্যবহার করতে হবে next-error-hook
যাও, বাফারে*compilation*
, বর্তমান লাইন বা পাড় বা যাই হোক না কেন, যাই হোক না কেন আপনার মত ভাবে তুলে চলেছে।
এখানে একটি দ্রুত এবং নোংরা উদাহরণ:
(defun foo ()
"..."
(with-current-buffer next-error-last-buffer
(hl-line-mode 1)))
(add-hook 'next-error-hook 'foo)
(অবশ্যই, আপনাকে অবশ্যই hl-line-mode
সেই বাফারটিতে একবার চালু করতে হবে above উপরের চিত্রের মতো এটি করা অত্যধিক কিল, তবে এতে কোনও ক্ষতি হয় না You আপনি ভাবতে পারেন যে আপনি কেবল যোগ foo
করতে পারেন grep-mode-hook
বা compilation-mode-hook
But কিন্তু h হুকগুলি যখন সেখানে অনুরোধ করা হয় তখন সেখানে থাকে না next-error-last-buffer
।)
বিঃদ্রঃ:
দুটি ব্যবহারকারীর বিকল্প রয়েছে যা উত্স বাফারে হিট নির্দেশ করার উপায়গুলি (সংকলন বাফারে নয়) নিয়ন্ত্রণ করে: next-error-highlight
এবং next-error-highlight-no-select
। তারা একই সম্ভাবনাগুলি সরবরাহ করে তবে তারা বিভিন্ন আদেশ দ্বারা ব্যবহৃত হয়। সম্ভাবনার মধ্যে রয়েছে একটি ফ্রঞ্জ তীর ব্যবহার করা বা একটি নির্দিষ্ট সময়ের জন্য ম্যাচটি হাইলাইট করা।
তবে বাফারে বর্তমানের হিটের ইঙ্গিত নিয়ন্ত্রণ করার মতো কোনও বিকল্প নেই *compilation*
। সুতরাং ইমাক্স উত্স বাফারের জন্য দুটি বিকল্প (যেখানে সম্ভবত সম্ভবত যথেষ্ট হবে) অফার করে তবে সংকলন বাফারের জন্য কোনও বিকল্প নেই।
আপনি (, grep সহ) বাফার সংকলন জন্য একটি অনুরূপ বিকল্প পেতে একটি বর্ধিতকরণ অনুরোধ ফাইলিং বিবেচনা করতে পারেন: M-x report-emacs-bug
। হাইলাইটিংটি সম্পাদন করতে আপনার নিজের ফাংশন সহ একটি হুক ব্যবহার করা ঠিক আছে, তবে এটির প্রয়োজন হবে না।
এবং যদি আপনি কেবল filled-rectangle
ফ্রঞ্জের সূচকটি পরিবর্তন করতে চান তবে আপনি এটি করতে পারেন (পূর্ববর্তী সংজ্ঞাগুলির তালিকার জন্য ফ্রঞ্জ বিটম্যাপগুলি দেখুন - এর পরিবর্তে আপনি যে কোনও ফ্রঞ্জ বিটম্যাপটি ব্যবহার করতে পারেন ):
(defun bar ()
(with-current-buffer next-error-last-buffer
(unless (eq 'filled-rectangle (cdr (assq 'overlay-arrow fringe-indicator-alist)))
(setq fringe-indicator-alist
(cons '(overlay-arrow . filled-rectangle) fringe-indicator-alist)))))
(add-hook 'next-error-hook 'bar)
আপডেট # 2:
আমি সবেমাত্র আবিষ্কার করেছি যে আপনি যদি বাম প্রান্তটি দেখানো বন্ধ করেন তবে আপনি শুরুর দিকে বর্ণিত আচরণটি দেখতে পাবেন: বর্তমান ত্রুটিটিকে শীর্ষে রাখার জন্য উইন্ডোটি স্ক্রোল করা আছে। সুতরাং এটি অন্য সম্ভাবনা। (আমার সেটআপে আমি যে আচরণটি দেখি, যেহেতু আমি ফ্রঞ্জ দেখায় না))
এই আচরণে একটি ত্রুটি রয়েছে, যা আমি সবেমাত্র রিপোর্ট করেছি ( # 20829 )। কী হিসাবে গণনা করা হয় (বর্তমানে, বাগ সংশোধন না করা পর্যন্ত) আপনি যখন C-x `
( next-error
) করছেন তখন নির্বাচিত উইন্ডোতে বামদিকের ফ্রিজটি প্রদর্শিত হচ্ছে কিনা is সংকলন বাফারটি দেখানো উইন্ডোটি বামদিকের প্রান্তটি প্রদর্শন করে না (এটি বর্তমানে যথেষ্ট নয়)।