মোড-লাইনে ক্ষুদ্র মোডের তালিকা লুকান


22

আমি বেশ কয়েকটি ছোটখাটো মোড ব্যবহার করি এবং সাধারণত আমি জানি যে প্রতিটি বড় মোডে কোন মাইনাল মোড সক্ষম। আমি যদি সত্যিই পুরো তালিকাটি দেখতে চাই তবে আমি চালাতে পারি C-h v minor-mode-list

একই সময়ে, আমার মোড লাইনটি সত্যিই আটকে আছে, তাই যখন আমি উল্লম্বভাবে ফ্রেম বিভক্ত করি তখন কখনও কখনও আমি মোড লাইনের শেষটি পড়তে পারি না।

আসল প্রশ্ন: মোড লাইনে অপ্রাপ্তবয়স্ক মোডের তালিকাটি অক্ষম করা যায় কীভাবে? উদাহরণস্বরূপ, এখন এটি দেখতে এর মতো হতে পারে:

-:--- main.c        All (7,12)     (C/l FlyC SScr Abbrev Fill) [main] 16:19 0.45

আমি এটি আরও সংক্ষিপ্ত দেখতে চাই:

-:--- main.c        All (7,12)     (C/l) [main] 16:19


2
আপনি ধনী-সংখ্যালঘু মোডেও দেখতে পারেন।
দক্ষ মোদী

উত্তর:


15

ডিমিনিশ মোড (মেলপা উপলভ্য) এটি করবে।

(diminish 'projectile-mode)

2
আপনি যদি (diminish 'projectile-mode "p")
নাগরিক

5
এও নোট করুন যে হ্রাসের আসল ব্যবহার হ'ল (eval-after-load "filladapt" '(diminish 'filladapt-mode))(ইমাস উইকি থেকে উদাহরণটি ব্যবহার করে) এবং কেবল (diminish 'filladapt-mode)উত্তর দ্বারা প্রস্তাবিত নয় । মোডটি ইতিমধ্যে লোড হওয়ার নিশ্চয়তা থাকলে আপনি কেবল সংক্ষিপ্ত সংস্করণটি ব্যবহার করতে পারেন।
ফিল্ডস 21

15

Mbork মন্তব্য হিসাবে, আপনি ব্যবহার করতে পারেন delight.el মোড লাইন অথবা বেছে বেছে সংশোধন করতে অক্ষম ছোটখাট (এবং প্রকৃতপক্ষে প্রধান) মোডে পাঠ্য।

সুবিধাগুলির মধ্যে একটি হ'ল এটির যত্ন নেয় eval-after-load(যা আপনাকে বেশিরভাগ ব্যবহারের ক্ষেত্রে কমিয়ে দেওয়ার জন্য ম্যানুয়ালি লিখতে হবে) যা কনফিগারেশনকে ক্লিনার করে তোলে। আপনার এখনও একই তথ্য দরকার - মোডের নাম এবং লাইব্রেরি যা এটি প্রয়োগ করে (যা ইমাক আপনাকে মোড সম্পর্কে জিজ্ঞাসা করলে তা আপনাকে বলবে) - তবে আপনি এটি সমস্ত একক আকারে গুটিয়ে রাখতে পারেন:

 (require 'delight)
 (delight '((some-mode nil "some-library")
            (some-other-mode nil "some-other-library")))

(বা কিছু বাস্তব ব্যবহারের উদাহরণের জন্য উপরের লিঙ্কটি অনুসরণ করুন))

আমি এই পদ্ধতির গ্রহণের পরামর্শ দেব, কারণ আপনি সর্বাধিক ছোটখাটো মোড হালকা পাঠ্য নাও চাইলেও , তাদের বেশ কয়েকটি কার্যকর ব্যবহারের সম্ভাবনা রয়েছে (এবং আপনি এখনও সেই সংক্ষিপ্ততর সংশোধন করতে পারেন)।

আপনি যদি সমস্ত ছোট মোড হালকা পাঠ্যকে সত্যই মুছে ফেলতে চান (এবং আবারও, আমি এটির প্রস্তাব দিই না), আপনি পরিবর্তনশীলটি পরিবর্তন করতে পারেন mode-line-modes। মোড লাইন ভেরিয়েবলগুলি কিছুক্ষণ আগে পরিবর্তিত হয়েছিল, যাতে আপনি ব্যবহার করতে পারেন M-x find-variable RET mode-line-modes RETএবং তারপরে বিভাগটি সম্পাদনা করে ম্যানুয়ালি আপনার ডিফল্ট সংজ্ঞাটি মানিয়ে নিতে পারেন minor-modes-alist

অবশ্যই তখন আপনার এটিকে বজায় রাখা দরকার, যা এতটা ফ্ল্যাশ নয়, তাই আপনি বিদ্যমান মানের মধ্যেminor-mode-alist প্রতীকটি প্রতিস্থাপন করতে পছন্দ করতে পারেন । নিম্নলিখিতটি কিছুটা বাস্তবায়ন-নির্দিষ্ট, তবে এটির পুরোপুরি সেট করার চেয়ে অবশ্যই দুর্দান্ত n এবং আপনি এটি চালু এবং বন্ধও করতে পারেন।mode-line-modes

(define-minor-mode minor-mode-blackout-mode
  "Hides minor modes from the mode line."
  t)

(catch 'done
  (mapc (lambda (x)
          (when (and (consp x)
                     (equal (cadr x) '("" minor-mode-alist)))
            (let ((original (copy-sequence x)))
              (setcar x 'minor-mode-blackout-mode)
              (setcdr x (list "" original)))
            (throw 'done t)))
        mode-line-modes))

(global-set-key (kbd "C-c m") 'minor-mode-blackout-mode)

ভাল, দুঃখের বিষয় যে কোনও 'আনন্দ' প্যাকেজ নেই।
মার্ক করপভ

2
ইমাকগুলি পুরানো এবং প্যাকেজ.এল নতুন হওয়ার সাথে কী রয়েছে , দরকারী লাইব্রেরিগুলির একটি স্তূপ রয়েছে যার প্যাকেজ নেই। আপনি যদি সেভাবে নিজেকে সীমাবদ্ধ করতে চলেছেন তবে আমি এল- গেটের দিকে তাকানোর পরামর্শ দেব যা ম্যানেজার হিসাবে কাজ করবে (আপডেট করা অন্তর্ভুক্ত) অন্যান্য লাইব্রেরির উত্সের ধরণের বিভিন্ন ধরণের জন্য।
ফিল্ডস

1
@ ড্র, আমি load-pathএবং সম্পর্কে জানি require। আমি যখন এক বছর আগে এটি ব্যবহার শুরু করেছি তখন আমি সমস্ত ইমাস প্যাকেজগুলি এইভাবে 'ইনস্টল' করতাম।
মার্ক করপভ

3
আমি সবেমাত্র delightমেলপাতে যুক্ত করেছি ।
স্যানিটিনিক

1
এনবি delightআজকাল জিএনইউ ইএলপিএতে রয়েছে, এবং মেল্পায় নয় (পূর্বের মন্তব্যে কেউ বিভ্রান্ত হওয়ার ক্ষেত্রে উল্লেখ করেছেন))
ফিল্ডস

8

কনফিগারেশনের মাধ্যমে ধনী-সংখ্যালঘু ব্যবহার করুন :

(require 'rich-minority)
(rich-minority-mode 1)
(setf rm-blacklist "")

আপনার মত চিন্তাও আমার আছে, তবে আমি মোড-লাইনটি আরও বিড়ম্বনায় সংক্ষিপ্ত করে রেখেছি :

  • সমস্ত অযাচিত স্থান সরিয়ে ফেলুন
  • বাফার অবস্থান তথ্য ক্ষেত্রের সমস্ত স্পেস এবং "ন্যূনতম প্রস্থ" সরান।
;; Remove all unwanted spaces
(setq-default mode-line-format
          '("%e" mode-line-front-space mode-line-mule-info mode-line-client mode-line-modified mode-line-remote mode-line-buffer-identification mode-line-position
        (vc-mode vc-mode) " "
        mode-line-modes mode-line-misc-info mode-line-end-spaces))
;; Remove all spaces and "min-width" of position info on mode-line
(setq mode-line-position
      `((1 ,(propertize
         " %p"
         'local-map mode-line-column-line-number-mode-map
         'mouse-face 'mode-line-highlight
         ;; XXX needs better description
         'help-echo "Size indication mode\n\
mouse-1: Display Line and Column Mode Menu"))
    (size-indication-mode
     (2 ,(propertize
          "/%I"
          'local-map mode-line-column-line-number-mode-map
          'mouse-face 'mode-line-highlight
          ;; XXX needs better description
          'help-echo "Size indication mode\n\
mouse-1: Display Line and Column Mode Menu")))
    (line-number-mode
     ((column-number-mode
       (1 ,(propertize
        "(%l,%c)"
        'local-map mode-line-column-line-number-mode-map
        'mouse-face 'mode-line-highlight
        'help-echo "Line number and Column number\n\
mouse-1: Display Line and Column Mode Menu"))
       (1 ,(propertize
        "L%l"
        'local-map mode-line-column-line-number-mode-map
        'mouse-face 'mode-line-highlight
        'help-echo "Line Number\n\
mouse-1: Display Line and Column Mode Menu"))))
     ((column-number-mode
       (1 ,(propertize
        "C%c"
        'local-map mode-line-column-line-number-mode-map
        'mouse-face 'mode-line-highlight
        'help-echo "Column number\n\
mouse-1: Display Line and Column Mode Menu"))))))
      )

এখন, আমি সর্বদা টুইটারিং-মোড নোটিফিকেশন এবং অর্গ-মোডের টাইমার দেখতে পাই: ডি


5

আমার জন্য যা কাজ করেছে তা এখানে:

(defvar hidden-minor-modes ; example, write your own list of hidden
  '(abbrev-mode            ; minor modes
    auto-fill-function
    flycheck-mode
    flyspell-mode
    inf-haskell-mode
    haskell-indent-mode
    haskell-doc-mode
    smooth-scroll-mode))

(defun purge-minor-modes ()
  (interactive)
  (dolist (x hidden-minor-modes nil)
    (let ((trg (cdr (assoc x minor-mode-alist))))
      (when trg
        (setcar trg "")))))

(add-hook 'after-change-major-mode-hook 'purge-minor-modes)

ড্রয়ের মন্তব্যে ধন্যবাদ , আমি এই সমাধানটির উপলব্ধি উন্নত করেছি। এখন এটি অ্যাসোসিয়েশন তালিকার সুবিধাগুলি ব্যবহার করে এবং কিছুটা দক্ষ হতে হবে ;-)


এফডব্লিউআইডাব্লু, এটি ম্যানুয়ালি সক্ষম হওয়া পূর্ব-লোড হওয়া গৌণ মোডগুলিকে ধরতে পারে না বা মোডে মোডগুলি যা হালকাভাবে তাদের হালকা পাঠ্য আপডেট করে (অন্যান্য লাইব্রেরিগুলি পরেও তা করে না)। তবে অন্যথায় এটি একটি যুক্তিসঙ্গত ব্যবহারিক পদ্ধতির বলে মনে হচ্ছে।
ফিল্ডস

1
বিন্দু minor-mode-alistএকটি হচ্ছে alist যে এন্ট্রি যোগ করা যেতে পারে এবং সরানো মাথায় পরেও তালিকাটি একই কী আছে নিচে unshadow এন্ট্রি ছায়া এবং হয়। আপনি যে ধরণের কাজটি করছেন তা করতে চাইলে প্রতিটি কীটির জন্য কেবল প্রথম এন্ট্রি (ব্যবহার করে দেখা assoc, পরিবর্তিত setcarইত্যাদি) পরিবর্তন করুন , যাতে আপনি এই দরকারী, উদ্দেশ্যযুক্ত বৈশিষ্ট্যটি হারাতে না পারেন।
ড্রিউ

@ ড্রু, আপনি ঠিক বলেছেন, আমার উন্নত আমার সমাধান দেখুন।
মার্ক কার্পভ

হা; যে আমি বোঝানো কি.
ড্রিউ

3

আমি এর সমাধানটিও রিংয়ের মধ্যে ফেলে দেব:

(defun modeline-set-lighter (minor-mode lighter)
  (when (assq minor-mode minor-mode-alist)
    (setcar (cdr (assq minor-mode minor-mode-alist)) lighter)))

(defun modeline-remove-lighter (minor-mode)
  (modeline-set-lighter minor-mode ""))

modeline-set-lighterআপনার পছন্দ মতো যে কোনও স্ট্রিংয়ে আপনাকে একটি ছোটখাটো মোডের লাইটার সেট করতে দেয়। modeline-remove-lighterআপনাকে সম্পূর্ণরূপে একটি ছোটখাটো মোডের লাইটারটি সরাতে দেয়।

তারপরে, আমার আর-ফাইলের শেষে আমি এই ফাংশনগুলিকে কেবল সেই ছোটখাট মোডগুলির জন্য কল করি যার লাইটারগুলিকে আমি সংশোধন করতে চাই:

(modeline-remove-lighter 'auto-complete-mode)
(modeline-remove-lighter 'git-gutter+-mode)
(modeline-remove-lighter 'guide-key-mode)
(modeline-remove-lighter 'whitespace-mode)
(modeline-set-lighter 'abbrev-mode " Abbr")
(modeline-set-lighter 'auto-fill-function (string 32 #x23ce))

2

আপনি নিম্নোক্ত উপায়ে সমস্ত ছোট ছোট মোড মুছে ফেলতে পারেন:

(setq mode-line-modes
      (mapcar (lambda (elem)
                (pcase elem
                  (`(:propertize (,_ minor-mode-alist . ,_) . ,_)
                   "")
                  (t elem)))
              mode-line-modes))

এটি ভবিষ্যতে সংজ্ঞায়িত ছোট ছোট মোডগুলির জন্যও কাজ করবে, যেহেতু এটি কেবলমাত্র ব্যবহারের minor-mode-alistথেকে সম্পূর্ণরূপে অপসারণ করে mode-line-format


1

এটা তোলে এর মূল্য লক্ষ করেন, use-package সমর্থন হ্রাস এবং আহ্লাদ । আপনি যদি এটি আপনার প্যাকেজগুলি পরিচালনা করতে ব্যবহার করেন তবে আপনি মোড লাইনে ছোটখাটো মোডগুলি লুকিয়ে রাখতে পারেন: হ্রাস বা: আনন্দদায়ক কীওয়ার্ড।

(use-package abbrev
  :diminish abbrev-mode
  :config
  (if (file-exists-p abbrev-file-name)
     (quietly-read-abbrev-file)))

0

আমি এত সহজ কিছু জন্য অভিনব নামের এক্সটেনশানগুলি ইনস্টল করার বিন্দুটি দেখতে পাচ্ছি না:

(setcar (alist-get minor-mode minor-mode-alist) "")

উদাহরণ স্বরূপ:

(dolist (mode '(projectile-mode
                whitespace-mode
                hs-minor-mode
                outline-minor-mode
                auto-fill-function))
  (setcar (alist-get mode minor-mode-alist) ""))

আপনি যে কোনও ধরণের স্টাফ এইভাবে করতে পারেন। উপরের পাঠ্যটি প্রতিস্থাপন সুস্পষ্ট। এছাড়াও, উদাহরণস্বরূপ, তালিকার শুরুতে ফ্লাইমেক মোড স্থাপন করা:

(let ((mode (assq #'flymake-mode minor-mode-alist)))
  (setq minor-mode-alist (cons mode (remq mode minor-mode-alist))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.