Establecer anchos de columna en `ibuffer`

16

¿Hay alguna manera de personalizar el ancho de las columnas ibuffer? Específicamente, quiero ampliar la columna Nombre para poder leer más nombres de búfer antes de que se trunquen. Lo he intentado Buffer-menu-name-width, pero parece que las Buffer-menuvariables no son utilizadas por ibuffer. También lo intenté M-x customize-group RET ibuffer RETpero nada parecía relevante.

nispio
fuente

Respuestas:

17

Como menciona la respuesta de @ Sigma, debe personalizarla ibuffer-formats. La cadena de documentos brinda muchos detalles sobre cómo modificarla a mano, y también señala que puede usar la customizemaquinaria para jugar con ella. Si prefiere el enfoque elisp, puede adaptar la configuración predeterminada a su gusto, con los números después del namecomponente de la lista que se refieren al ancho mínimo y máximo de las columnas. Por lo tanto, puede cambiar la columna a la que se extiende el campo de nombre del valor predeterminado de 18 a 30:

;; 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
fuente
Parece que incluso cuando usa la customizeinterfaz todavía termina escribiendo (o modificando) formularios elisp para personalizar.
nispio
5

Puede personalizar ibuffer-formats, lo que le permite definir, entre otras cosas, el ancho de las columnas. También le permite definir varios formatos, lo cual es conveniente para las cosas que no desea mostrar siempre.

Sigma
fuente
2

Si lo que le interesa es ver toda la columna de nombre de búfer, específicamente, puede hacerlo sin "personalizar" nada, mediante el uso ibuffer-switch-format, enlazado a `dentro ibuffer.

La función cambia entre las alternativas especificadas por ibuffer-formats. Por defecto ibuffer-formatstiene dos opciones:

((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))

de los cuales el segundo no restringe el ancho de la columna de nombre.

En el caso general, customizees necesario, como se especifica en las respuestas de Sigma y Dan .

aplauso
fuente