Définir les largeurs de colonne dans `ibuffer`

16

Existe-t-il un moyen de personnaliser les largeurs des colonnes dans ibuffer? Plus précisément, je souhaite élargir la colonne Nom pour pouvoir lire davantage de noms de tampons avant qu'ils ne soient tronqués. J'ai essayé Buffer-menu-name-width, mais il semble que les Buffer-menuvariables ne soient pas utilisées par ibuffer. J'ai également essayé M-x customize-group RET ibuffer RETmais rien ne semblait pertinent.

nispio
la source

Réponses:

17

Comme le mentionne la réponse de @ Sigma, vous devez personnaliser ibuffer-formats. La docstring donne beaucoup de détails sur la façon de la modifier à la main, et note également que vous pouvez utiliser la customizemachinerie pour la bricoler. Si vous préférez l'approche elisp, vous pouvez adapter les paramètres par défaut à votre goût, les chiffres après le namecomposant de la liste se référant à la largeur minimale et maximale des colonnes. Ainsi, la modification de la colonne à laquelle le champ de nom s'étend de la valeur par défaut de 18 à 30 peut être obtenue en:

;; nearly all of this is the default layout
(setq ibuffer-formats 
      '((mark modified read-only " "
              (name 30 30 :left :elide) ; change: 30s were originally 18s
              " "
              (size 9 -1 :right)
              " "
              (mode 16 16 :left :elide)
              " " filename-and-process)
        (mark " "
              (name 16 -1)
              " " filename)))
Dan
la source
Il semble que même lorsque vous utilisez l' customizeinterface, vous finissez toujours par écrire (ou modifier) ​​des formulaires elisp pour effectuer la personnalisation.
nispio
5

Vous pouvez personnaliser ibuffer-formats, ce qui vous permet de définir entre autres la largeur des colonnes. Il vous permet également de définir plusieurs formats, ce qui est pratique pour les éléments que vous ne souhaitez pas toujours afficher.

Sigma
la source
2

Si ce qui vous intéresse, c'est de voir la colonne entière du nom du tampon, en particulier, vous pouvez le faire sans rien "personnaliser", en utilisant ibuffer-switch-format, lié à l' `intérieur ibuffer.

La fonction bascule entre les alternatives spécifiées par ibuffer-formats. Par défaut ibuffer-formatsa deux options:

((mark modified read-only locked " "
       (name 18 18 :left :elide)
       " "
       (size 9 -1 :right)
       " "
       (mode 16 16 :left :elide)
       " " filename-and-process)
 (mark " "
       (name 16 -1)
       " " filename))

dont la seconde ne limite pas la largeur de la colonne de nom.

Dans le cas général, customizeest nécessaire, comme spécifié dans les réponses de Sigma et Dan .

aplaice
la source