Jeśli chcesz zmienić rozmiar w zależności od rozdzielczości, możesz zrobić coś takiego (dostosowując preferowaną szerokość i rozdzielczości do własnych potrzeb):
(defun set-frame-size-according-to-resolution ()
(interactive)
(if window-system
(progn
;; use 120 char wide window for largeish displays
;; and smaller 80 column windows for smaller displays
;; pick whatever numbers make sense for you
(if (> (x-display-pixel-width) 1280)
(add-to-list 'default-frame-alist (cons 'width 120))
(add-to-list 'default-frame-alist (cons 'width 80)))
;; for the height, subtract a couple hundred pixels
;; from the screen height (for panels, menubars and
;; whatnot), then divide by the height of a char to
;; get the height we want
(add-to-list 'default-frame-alist
(cons 'height (/ (- (x-display-pixel-height) 200)
(frame-char-height)))))))
(set-frame-size-according-to-resolution)
Zauważ, że window-system jest przestarzałe w nowszych wersjach emacsa. Odpowiednim zamiennikiem jest (display-graphic-p)
. Zobacz odpowiedź na pytanie Jak wykryć, że emacs działa w trybie terminalowym? aby uzyskać więcej informacji.
Mam w moim
.emacs
:Można też spojrzeć na funkcje
set-frame-size
,set-frame-position
orazset-frame-width
. UżyjC-h f
(akaM-x describe-function
), aby wyświetlić szczegółową dokumentację.Nie jestem pewien, czy istnieje sposób na obliczenie maksymalnej wysokości / szerokości ramki w bieżącym środowisku okienkowym.
źródło
(if (window-system) (set-frame-size (selected-frame) 124 40))
dla wygranej - tak ładne i zwięzłe, i daje mi rozmiar domyślny mojego terminala, który jest miły i znajomy. :) (Oczywiście dostosuj do swoich preferencji.) Dzięki!init.el
, dotyczy to tylko początkowej klatki. Jeśli później utworzysz nową klatkę, powyższa funkcja nie przyniesie efektu; nowa ramka będzie miała ustawienia ustawione wdefault-frame-alist
.(set-frame-size (selected-frame) 80 24)
daje mi ramkę 161 na 48; Jestem na ekranie Hidpi 4K, ale nie spodziewałbym się, że wpłynie to na liczbę znaków.Zaczerpnięte z: http://www.gnu.org/software/emacs/windows/old/faq4.html
Pierwsze ustawienie dotyczy wszystkich ramek emacsa, łącznie z pierwszą, która pojawia się po uruchomieniu. Drugie ustawienie dodaje dodatkowe atrybuty do pierwszej klatki. Dzieje się tak, ponieważ czasami dobrze jest znać oryginalną ramkę, w której uruchamiasz emacsa.
źródło
(width . 80) (height . 40)
), ale z jakiegoś powodu przestała działać po uaktualnieniu mojej wersji Xubuntu z 12.04 do 13.10: po uruchomieniu rozmiar klatki był domyślny. Następnie przeszedłem na używanie odpowiedzi Chrisa Conwaya, która mi pasuje.Najprostszym sposobem znalazłem to zrobić w środowisku X-Window jest poprzez zasobów X . Odpowiednia część mojego .Xdefaults wygląda następująco:
Powinieneś być w stanie dodać do niego sufiks ze współrzędnymi lokalizacji + 0 + 0, aby wymusić przeniesienie go do lewego górnego rogu ekranu. (powodem, dla którego tego nie robię, jest to, że od czasu do czasu odradzam nowe ramki i sprawia to, że rzeczy są niejasne, jeśli pojawiają się dokładnie w tym samym miejscu co poprzednia)
Zgodnie z instrukcją ta technika działa również w systemie MS Windows , przechowując zasoby jako pary klucz / wartość w rejestrze. Nigdy tego nie testowałem. To może być świetne, może być o wiele bardziej niewygodne niż zwykła edycja pliku.
źródło
Spróbuj dodać następujący kod do
.emacs
źródło
Możesz także użyć parametru -geometry podczas uruchamiania emacsa:
emacs -geometry 80x60+20+30
da ci okno szerokie na 80 znaków, wysokie na 60, z lewym górnym rogiem 20 pikseli po prawej i 30 pikseli w dół od lewego górnego rogu tła.źródło
Na Ubuntu do:
źródło
W systemie Windows można zmaksymalizować ramkę emacsa za pomocą tej funkcji:
źródło
źródło
Wolę ustawienia Bryana Oakleya. Jednak wysokość ' nie działa poprawnie w moim GNU Emacs 24.1.1.
źródło