У меня есть много фреймов, всегда открытых в emacs. Подобно тому, как я использую emacsclient (daemon) и почти никогда не перезапускаю свой компьютер, эти кадры никогда не закрываются. Я мог бы закрыть его с помощью C-x k
, но как закрыть все открытые кадры?Как закрыть все открытые кадры в emacsclient?
ответ
Это похоже на работу приемлемо. Он спросит вас, имеет ли один из буферов в списке уничтожения несохраненные изменения.
(defun close-all-other-buffers-and-frames()
"Destroy all frames except this one, kill all buffers, display `*scratch*'."
(interactive)
(set-buffer "*scratch*")
(delete-other-frames)
(let ((l (buffer-list)) b)
(while l
(setq b (car l)
l (cdr l))
(and (buffer-file-name b)
(kill-buffer b)))))
У меня есть ощущение, что цикл для уничтожения буферов может быть выполнен более элегантно - пожалуйста, предложите улучшения!
У меня есть что-то подобное в моих праведниках (вы можете посетить его и посмотреть, хотите ли вы что-то от него принять). Я отклонил его, так как не нашел способ безопасно обнаружить последний открытый файл, который я хотел сохранить открытым. (Я хотел вызвать его в 'find-file-hook'.) Я также добавил' buffer-modified-p' и убил только буферы, которые не были изменены. – Tobias
Закрытие всех фреймов только уходит, не так ли?
Для того, чтобы закрыть все рамки, кроме одного, вы можете использовать delete-other-frames
с ключевой последовательностью C-x 5 1.
Я хочу, чтобы не закрыть окно, а затем перезапустить emacsclient и все еще открыть много буфера. Я хочу выйти из emacsclient, как я ушел из emacs (закрывая каждый буфер). И когда я снова начинаю emacsclient, мне нужны свежие emacs без открытия буфера. – ppr
Если вы хотите выйти из emacs-client как emacs, я не понимаю, почему вы используете emacs-client вообще. Тогда вы можете использовать emacs напрямую. – Tobias
Я использую emacsclient, потому что запуск намного быстрее, чем emacs. Я на очень старом компьютере ... – ppr
- 1. Как закрыть все открытые курсоры в Lua?
- 2. как закрыть все открытые формы в WPF
- 3. закрыть все открытые соединения - MySQL
- 4. Программно закрыть все открытые лайтбоксы?
- 5. Функция щелчка закрыть все открытые
- 6. вилка: закрыть все открытые розетки
- 7. Как закрыть все открытые модальные диалоги durandaljs
- 8. Как закрыть все открытые вкладки сразу?
- 9. Как закрыть все открытые диалоги JQuery
- 10. Как закрыть все открытые соединения Sqlite?
- 11. Сделать QPushButton закрыть все открытые программные окна
- 12. закрыть все открытые документы после сохранения
- 13. Закрыть все открытые WinForms, но один?
- 14. css menu закрыть все открытые меню
- 15. Как закрыть оракульные открытые курсоры
- 16. Как закрыть все дочерние кадры из родительского фрейма?
- 17. Как закрыть все окна
- 18. Как закрыть все открытые квадратные скобки, которые не закрыты?
- 19. Как закрыть все открытые экземпляры немодального диалогового окна?
- 20. Как закрыть все открытые окна из моей программы на C#?
- 21. Как закрыть приложение, включая все дочерние окна, открытые, MFC
- 22. Libevent: как закрыть все открытые сокеты при выключении?
- 23. Как закрыть все сеансы (plone), открытые пользователем, кроме текущего?
- 24. Как закрыть все открытые панели, когда другой один щелкают
- 25. Попытка закрыть все открытые формы в визуальном базисе
- 26. Можете ли вы закрыть все открытые окна в capybara?
- 27. Как принудительно закрыть открытые/висячие розетки?
- 28. Как закрыть открытые диалоговые окна OLE
- 29. Как закрыть все сеансы Firefox?
- 30. Предполагается, что ServerSocket.close() должен закрыть все открытые сокеты?
Вы имеете в виду буферы, если это возможно? Проверьте 'C-x C-b' или' list-buffers' – progo
Также 'C-x k' убивает буфер, а не соответствующий фрейм. 'C-x 5 0' убивает фрейм (но сохраняет буфер). – tripleee
Почему вы создаете так много кадров, во всяком случае? См. Http://stackoverflow.com/questions/9968740/create-or-reuse-existing-emacs-gui-frame – tripleee