Ustaw szerokość kolumn w „ibuffer”

16

Czy istnieje sposób dostosowania szerokości kolumn ibuffer? W szczególności chcę poszerzyć kolumnę Nazwa, aby móc odczytać więcej nazw buforów przed ich obcięciem. Próbowałem Buffer-menu-name-width, ale wydaje się, że Buffer-menuzmienne nie są używane przez ibuffer. Próbowałem też, M-x customize-group RET ibuffer RETale nic nie wydawało się istotne.

nispio
źródło

Odpowiedzi:

17

Jak wspomniano w odpowiedzi @ Sigma, musisz dostosować ibuffer-formats. Dokumentacja zawiera wiele szczegółów na temat ręcznej modyfikacji, a także zauważa, że ​​możesz użyć customizemaszyny do majsterkowania przy niej. Jeśli wolisz podejście elisp, możesz dostosować ustawienia domyślne do swoich upodobań, przy czym liczby po nameelemencie listy odnoszą się do minimalnej i maksymalnej szerokości kolumn. Tak więc zmianę kolumny, na którą rozciąga się pole nazwy z domyślnej 18 na 30, można osiągnąć poprzez:

;; 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
źródło
Wygląda na to, że nawet podczas korzystania z customizeinterfejsu nadal kończy się pisanie (lub modyfikowanie) formularzy elisp w celu dostosowania.
nispio
5

Możesz dostosować ibuffer-formats, co pozwala między innymi zdefiniować szerokość kolumn. Pozwala także zdefiniować kilka formatów, co jest wygodne dla rzeczy, których nie zawsze chcesz wyświetlać.

Sigma
źródło
2

Jeśli szczególnie zależy Ci na tym, aby zobaczyć całą kolumnę z nazwą bufora, możesz to zrobić bez „dostosowywania” czegokolwiek, przy użyciu ibuffer-switch-formatpowiązania z `wewnątrz ibuffer.

Funkcja przełącza się między opcjami określonymi przez ibuffer-formats. Domyślnie ibuffer-formatsma dwie opcje:

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

z czego drugi nie ogranicza szerokości kolumny nazwy.

W ogólnym przypadku customizejest potrzebny, jak określono w odpowiedziach Sigmy i Dana .

aplazja
źródło