আমি কি নিষ্ক্রিয় মিনিবিফারের পটভূমির রঙ পরিবর্তন করতে পারি?


9

নিষ্ক্রিয় মিনিবুফার

আমি নিম্নলিখিত সেটিংস দিয়ে চেষ্টা করেছিলাম:

(add-hook 'minibuffer-setup-hook
      (lambda ()
        (make-local-variable 'face-remapping-alist)
        (add-to-list 'face-remapping-alist '(default (:background "green")))))

(set-face-background 'minibuffer-prompt "blue")

তবে তারা কেবল সক্রিয় মিনিবাফারকেই প্রভাবিত করেছিল:

অ্যাক্টিভ মিনিবুফার


1
আমি বিশ্বাস করি এটিকে ইকো অঞ্চলও বলা হয়।
মালবারবা

1
@Malabarba: এটা হয় শুধুমাত্র প্রতিধ্বনি এলাকায় নামক (minibuffer নিষ্ক্রিয় যখন)।
ড্র করুন

উত্তর:


6

minibuffer-setup-hook মিনিবুফার সেট আপ করা হয় তখনই ব্যবহৃত হয়, যেমন, সক্রিয় হয়, যখন এটি নিষ্ক্রিয় করা হয় তা নয়।

minibuffer-exit-hookমিনিবুফারটি বের হয়ে গেলে কার্যকর হয়। এছাড়াও আছে minibuffer-inactive-mode-hook

তবে যদিও তারা রঙ পরিবর্তন শুরু করে (যেমন (debug)হুক ফাংশনের শুরুতে যুক্ত করে এবং তারপরে ডিবাগারটি দিয়ে পদক্ষেপের মাধ্যমে দেখানো হয় d) তবে মনে হয় kill-local-variablesএটি যুক্ত হওয়া রঙটি কিছুটা সময় সরিয়ে ফেলে। আরও পরীক্ষা করার জন্য আমার কাছে এখন সময় নেই, তবে সম্ভবত আপনি পারেন বা অন্য কারও কাছে দ্রুত সমাধান রয়েছে। শুধুমাত্র অসম্পূর্ণ তথ্য সরবরাহ করার জন্য দুঃখিত।

এখনই যেতে হবে - তবে তাড়াতাড়ি, আমি অনুমান করছি যে সম্ভবত আপনাকে হুকের সাথে কোনওভাবেই ঝাঁকুনির প্রয়োজন হবে না, এবং আপনি কেবল নামগুলি মিলে সমস্ত বাফারগুলির জন্য মুখের রিম্যাপিং করতে পারেন \` \*Minibuf-[0-9]+\*\'


এফডাব্লুআইডাব্লু, আমি একটি পৃথক মিনিবিফার ফ্রেম ব্যবহার করি minibuffer-exit-hookএবং ফ্রেমের ব্যাকগ্রাউন্ডটি রঙ করতে আমি এটি রাখি:

(defun 1on1-color-minibuffer-frame-on-exit ()
  "Change background of minibuffer frame to reflect the minibuffer depth.
Use this when reducing the minibuffer recursion depth."
  (when 1on1-minibuffer-frame
    (save-window-excursion
      (select-frame 1on1-minibuffer-frame)
      (cond ((= (minibuffer-depth) 2)
             (set-background-color 1on1-active-minibuffer-frame-background))
            ((< (minibuffer-depth) 2)
             (set-background-color 1on1-inactive-minibuffer-frame-background))
            (t
             (set-background-color (hexrgb-increment-hue ; Change bg hue slightly.
                                    (frame-parameter nil 'background-color)
                                    1on1-color-minibuffer-frame-on-exit-increment)))))))

আপনার বিশ্লেষণ দেওয়া, আমার ধারণা face-remapping-alist স্থায়ী করা কি কাজ করবে? কোড মার্কআপের ব্যাককোটিসের জন্য, এই উত্তরটি দেখুন
গিলস 'অশুভ হওয়া বন্ধ করুন'

আপনি যে লিঙ্কটি 404. ফলাফল প্রদান করা
Compro প্রসাদ

@ কমপ্রোপ্রসাদ: স্থির। ধন্যবাদ.
ড্র হয়েছে

3

আপনি চেষ্টা করতে পারেন:

(dolist (buf '(" *Echo Area 0*" " *Echo Area 1*"))
  (with-current-buffer (get-buffer buf)
    (make-local-variable 'face-remapping-alist)
    (add-to-list 'face-remapping-alist '(default (:background "green")))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.