LINUX.ORG.RU

Emacs, буферы, kill...

 ,


2

2

Предыстория в двух словах: Забиндил переключение буферов, хочу без дополнений игнорировать «*» буферы.

Выдрал на просторах кусок конфига:

;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
  (if (get-buffer "*scratch*")
      (kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)

;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")

;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
      '(lambda ()
         (let ((buffer "*Completions*"))
           (and (get-buffer buffer)
                (kill-buffer buffer)))))

Когда я открываю файл и если открывается буфер *Completions*, просмотр папок, то строки ;; Removes *scratch* автоматом его закрывают.
Сумбурнополучилось, кхм. Как тестил: комментировал этот кусок и всё работает, только он в памяти висит, пока руками не убьёшь.

Задача - автоматически закрывать буфер *scratch* после открытия файла.

Ответ на: комментарий от no-such-file

при перемотке мешают ;) У меня когда открыто немного файлов то горячие клавиши супер, когда много (это редко), по первым буквам названия. И вот при перемотке буферы * мешают. Надо, я сам открою ;)

masterdilly ()
Ответ на: комментарий от no-such-file

Можно и не убивать ,просто чтобы при перемотке (без включения доп функций) их игнорировать.

masterdilly ()

Не стоит убивать *scratch*

anonymous ()
Ответ на: комментарий от masterdilly

чтобы при перемотке (без включения доп функций)

Не очень понял, что значит «без включения доп функций»? Какая-то религия, где запрещено использовать ido или helm?

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Пока удобно переключать окна горячими клавишами. Одними. Я не люблю нажимать больше, когда есть возможность меньше ;)

masterdilly ()
Ответ на: комментарий от masterdilly

Пока удобно переключать окна горячими клавишами. Одними. Я не люблю нажимать больше, когда есть возможность меньше ;)

ivy или ido (ну на крайний случай helm) действительно хороши. Для переключения буферов тоже.

Но тем не менее для быстрого последовательного переключения буферов я навелосипедил:

;; Next Buffer
(defun haba/next-buffer ()
  (interactive)
  (let ((b-name (buffer-name)))
    (next-buffer)
    (while
        (and
         (string-match-p "^\*" (buffer-name))
         (not (equal b-name (buffer-name))))
      (next-buffer))))


;; Previous Buffer
(defun haba/previous-buffer ()
  (interactive)
  (let ((b-name (buffer-name)))
    (previous-buffer)
    (while
        (and
         (string-match-p "^\*" (buffer-name))
         (not (equal b-name (buffer-name))))
      (previous-buffer))))



Повесил их на M-9 и M-0 — пользуюсь достаточно часто.

habamax ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.