Препятствуйте тому, чтобы нежелательные буферы открылись

Согласно vimdoc попыткам энергии обнаружить автоматически кодирование файла, поэтому если Вы редактируете существующие файлы Вы shold быть хорошими.

Можно всегда вызывать кодирование, если Вы хотите с :set fileencodings=utf-8. Можно найти документацию здесь.

18
01.09.2011, 02:23
3 ответа

Это сводило меня с ума ... пока я не исправил.

Теперь нет буферов царапин , сообщений или завершений , которые можно было бы испортить. Наслаждаться!

Поместите это в свой .emacs:

;; Makes *scratch* empty.
(setq initial-scratch-message "")

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

;; Don't show *Buffer list* when opening multiple files at the same time.
(setq inhibit-startup-buffer-menu t)

;; Show only one active window when opening multiple files at the same time.
(add-hook 'window-setup-hook 'delete-other-windows)

Бонус:

;; No more typing the whole yes or no. Just y or n will do.
(fset 'yes-or-no-p 'y-or-n-p)
23
27.01.2020, 19:46

Хорошо... это - частично способ, которым работает Emacs, но существуют вещи, которые можно сделать для помощи переключению в целом.

Во-первых, Emacs должен иметь по крайней мере один буфер. Так, даже если Вы хотели избавиться от *scratch* и *Messages*, Вас оставили бы с еще одним буфером, который Вы не хотели (или Вы поймете где Emacs, просто проигнорированный Ваше последнее kill-buffer запросите, потому что это воссоздавало тот буфер (b/c, требуется один буфер).

Так, лучший способ перейти к сути дела, где переключение буферов имеет больше смысла, состоит в том, чтобы на самом деле иметь буферы, на которые Вы хотите переключиться.

И при выполнении этого можно посмотреть на все опции/пакеты, доступные Вам для переключения буферов - многие из которых перечислены на Wiki Emacs под SwitchingBuffers. ido довольно популярно, как icicles и anything.

6
27.01.2020, 19:46
  • 1
    я сохраняю свои сессии с (desktop-save-mode 1), таким образом, почти всегда у меня будет что-то открытым при запуске, я посмотрю на те пакеты, спасибо. –  Alberto Zaccagni 01.09.2011, 15:38

Если кого-нибудь интересует удаление только буфера *scratch* и оставление буфера *Messages*, этот код сработал у меня:

(defun acg-initial-buffer-choice ()
  (if (get-buffer "*scratch*")
      (kill-buffer "*scratch*"))
  (get-buffer "*Messages*"))

(setq initial-buffer-choice 'acg-initial-buffer-choice)

Одна вещь, которую вы должны иметь в виду: если в любой момент Emacs останется без буфера для отображения (например. например, вы убили все буферы), он создаст либо *scratch*, либо *Messages* буфер, так что убедитесь, что вы не будете удалять все буферы во время рабочего процесса, иначе *scratch* может ожить снова.

2
27.01.2020, 19:46

Теги

Похожие вопросы