2015-02-07 4 views
3

Когда я бегу list-packages на Emacs 24, я получаю экран, который выглядит следующим образом:Как сделать столбец «пакет» экрана списка пакетов ELPA Emacs шире?

ELPA

Проблема заключается в том, что имена многих пакетов-длиннее, чем колонки пакета. Как сделать этот столбец более широким, чтобы я мог видеть полные имена пакетов?

ответ

1

Возможно, есть более элегантное решение, но я придумал это. Вы можете определить ширину столбца, используя следующий код и изменяя переменную package-menu-column-width в соответствии с вашими потребностями. Затем вам нужно включить его в файл инициализации (после (require 'package)). Это из файла package.el, который определяет формат таблицы. Посмотрите первый комментарий внутри кода, где вам нужно изменить ширину столбца. Аналогичным образом вы можете перейти к другим столбцам.

;; <<<< here you have to adapt the number to your needs >>>> 
(defcustom package-menu-column-width 18 
    "Width of the package column." 
    :type 'number 
    :group 'package) 

(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu" 
    "Major mode for browsing a list of packages. 
Letters do not insert themselves; instead, they are commands. 
\\<package-menu-mode-map> 
\\{package-menu-mode-map}" 
    (setq tabulated-list-format 
     `[("Package" ,package-menu-column-width package-menu--name-predicate) 
      ("Version" 12 nil) 
      ("Status" 10 package-menu--status-predicate) 
      ,@(if (cdr package-archives) 
       '(("Archive" 10 package-menu--archive-predicate))) 
      ("Description" 0 nil)]) 
    (setq tabulated-list-padding 2) 
    (setq tabulated-list-sort-key (cons "Status" nil)) 
    (add-hook 'tabulated-list-revert-hook 'package-menu--refresh nil t) 
    (tabulated-list-init-header)) 
+0

Я должен был сделать то же самое. Похоже, что патч для файла package.el предназначен для того, чтобы разрешить настраиваемые ширины столбцов! –

0

http://www.github.com/purcell/emacs.d хранилища включает в себя следующее в LISP/инициализация-elpa.el файл инсталлятор, который выглядит, как он будет решать вашу проблему.

(require-package 'cl-lib) 
(require 'cl-lib) 

(defun sanityinc/set-tabulated-list-column-width (col-name width) 
    "Set any column with name COL-NAME to the given WIDTH." 
    (cl-loop for column across tabulated-list-format 
      when (string= col-name (car column)) 
      do (setf (elt column 1) width))) 

(defun sanityinc/maybe-widen-package-menu-columns() 
    "Widen some columns of the package menu table to avoid truncation." 
    (when (boundp 'tabulated-list-format) 
    (sanityinc/set-tabulated-list-column-width "Version" 13) 
    (let ((longest-archive-name (apply 'max (mapcar 'length (mapcar 'car package-archives))))) 
     (sanityinc/set-tabulated-list-column-width "Archive" longest-archive-name)))) 

(add-hook 'package-menu-mode-hook 'sanityinc/maybe-widen-package-menu-columns) 
Смежные вопросы