Intereting Posts
Доступ к хранилищу iphone в качестве устройства / раздела Как разрешить www-data создавать папку, не предоставляя доступ для чтения к родительской папке копировать mp3 в целевой каталог, поддерживающий структуру каталогов и удаляя файлы при завершении копирования Mutt не хранит сообщения в Отправленных (запись) в неинтерактивном режиме. Удаление строк между 2 строками в Solaris Редактирование строки (readline?) С помощью виртуальных клавиш Чтение длины значения по трубопроводу? awk – читать программу И ввод со стандартного ввода? yum update выходит с «Не устанавливал никаких ключей» Как установить шрифт по умолчанию для всех приложений Qt5? Что нужно учитывать при покупке рабочего стола для использования двух экранов в Linux Почему загрузка в меню режима спасения ничего не делает? RHEL – GDM не удалось записать в файл авторизации Настройка принтера для использования только формата A4 .bashrc синтаксическая ошибка рядом с неожиданным токеном `('

Предотвращение открытия нежелательных буферов

Я использую emacs для ежедневного редактирования javascript, для переключения между буферами, которые я использую Cx LEFT и Cx RIGHT, и я в порядке с этим (даже если мне трудно узнать путь к файлу, который я модифицирую).

Мои проблемы:

  1. при запуске я всегда открывал *scratch* и *Messages* , я думал, что положить (kill-buffer "*scratch*") в мой .emacs решит проблему, но это не так, у вас есть предложение?

  2. когда я открываю файлы, я всегда делаю автозаполнение TAB, поэтому каждый раз, когда я создаю новый буфер *Messages* содержащий параметры для завершения, как я могу предотвратить это от создания или лучше, как мне заставить emacs убить его, после Я сделал свой выбор?

Скажите свое мнение, если вы думаете, что я делаю то, что не так, как должно быть, со мной, как я сказал наверху.

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

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

Поместите это в свои .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-np) 

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

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

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

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

Если кто-то заинтересован в удалении только буфера * 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 *, поэтому убедитесь, что вы выиграли ' t удалять все буферы во время рабочего процесса, или * scratch * может снова вернуться к жизни.