summarye.elの設定

バッファのサマリを別ウィンドウに表示するパッケージsummaryeの設定。texの執筆時はセクション名を頭出ししてくれるので重宝する。texに限らず、プログラミング言語など汎用的に使えるので便利である。

  (defun se/quit-summary-item ()
    (interactive)
    (view-mode 1)
    (View-quit))

  (define-key help-map "M" 'se/make-summary-buffer)
  ;; (define-key summary-edit-mode-map (kbd "C-c C-q") 'se/quit-summary-item)
  (define-key summary-edit-mode-map (kbd "q") 'se/quit-summary-item)

あとはse/summary-display-formatを修正して、name-widthの部分を調整した:

(defun se/summary-display-format (cluster width &optional lineformatter cachedp)
  (let* ((str (se/cluster-display-string cluster))
         (line-format "%c  %3d: %s %3s")
         (name-width (- width 18))
         (lin (cond ((null lineformatter)
                     (save-excursion
                       (set-buffer (se/cluster-buffer cluster))
                       (save-restriction
                         (widen)
                         (format "%3d"
                                 (count-lines (se/cluster-beg cluster)
                                              (se/cluster-end cluster))))))
                    ((stringp lineformatter) (format "%3s" lineformatter))
                    ((or (byte-code-function-p lineformatter)
                         (symbolp lineformatter))
                     (format "%3s" (funcall lineformatter cluster))))))
    (unless (and cachedp str)
      (setq str (se/untabify-string
                 (se/string-cut-down-to (se/cluster-name cluster) name-width)))
      (setq str (concat str (make-string (- name-width
                                            (se/string-display-width str)) ?\ )))
      (se/set-cluster-display-string cluster str))
    (format line-format
            (or (se/cluster-marked cluster) ? )
            (1+ (se/cluster-position cluster)) str lin)))