Jestem nowy w StackOverflow i mam pytanie dotyczące problemu, który był praktycznie jedyną rzeczą, która mnie irytuje w mojej misji opanowania Emacsa.Emacs: Pobierz nową klatkę i emacsclient -c, aby użyć rozmiaru ramki zestawu?
skonfigurowałem mój plik .emacs
ustawić domyślny rozmiar ramki dla Emacsa do 70 wierszy i 80 kolumn tak:
(add-to-list 'default-frame-alist '(left . 0))
(add-to-list 'default-frame-alist '(top . 0))
(add-to-list 'default-frame-alist '(height . 70))
(add-to-list 'default-frame-alist '(width . 80))
Działa to dobrze, gdy zaczyna Emacs, problemem jest to, że kiedy uruchomi nową ramkę z ustawieniami new-frame
lub te ustawienia nie są przestrzegane. Czy istnieje sposób na wymuszenie emacsclient
i new-frame
odczytania ustawień w pliku .emacs
po ich wykonaniu?
Edit:
Oto moja .emacs
file:
;;This setting is meant to force emacs to read size settings before make-frame.
(add-hook 'before-make-frame-hook
#'(lambda()
(add-to-list 'default-frame-alist '(left . 0))
(add-to-list 'default-frame-alist '(top . 0))
(add-to-list 'default-frame-alist '(height . 70))
(add-to-list 'default-frame-alist '(width . 80))))
;;disable annoying welcome screen.
(setq inhibit-splash-screen t)
(setq inferior-lisp-program "/usr/bin/abcl")
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(require 'slime)
(slime-setup)
(add-to-list 'auto-mode-alist '("\\.lisp$" . lisp-mode))
(add-to-list 'auto-mode-alist '("\\.cl$" . lisp-mode))
(add-to-list 'auto-mode-alist '("\\.asd$" . lisp-mode))
(require 'slime)
(slime-setup)
(eval-after-load "slime"
'(progn
(setq slime-complete-symbol*-fancy t
slime-complete-symbol-function 'slime-fuzzy-complete-symbol
slime-when-complete-filename-expand t
slime-truncate-lines nil
slime-autodoc-use-multiline-p t)
(slime-setup '(slime-fancy slime-asdf))
(define-key slime-repl-mode-map (kbd "C-c ;")
'slime-insert-balanced-comments)
(define-key slime-repl-mode-map (kbd "C-c M-;")
'slime-remove-balanced-comments)
(define-key slime-mode-map (kbd "C-c ;")
'slime-insert-balanced-comments)
(define-key slime-mode-map (kbd "C-c M-;")
'slime-remove-balanced-comments)
(define-key slime-mode-map (kbd "RET") 'newline-and-indent)
(define-key slime-mode-map (kbd "C-j") 'newline)))
(add-to-list 'default-frame-alist '(left . 0))
(add-to-list 'default-frame-alist '(top . 0))
(add-to-list 'default-frame-alist '(height . 70))
(add-to-list 'default-frame-alist '(width . 80))
(normal-erase-is-backspace-mode 0)
(tool-bar-mode -1) ;;method for disabling changed in 24. can not nil, most negative
(scroll-bar-mode -1)
;;for loading cedet.
(load-file "/usr/share/emacs/site-lisp/cedet/common/cedet.el")
Zgodnie z dokumentacją Emacsa, "nowa ramka" jest przestarzała. Kiedy używam 'make-frame', ustawienia są szanowane. 'emacsclient -c' również działa dobrze dla mnie. – Thomas