Làm cách nào để tối đa hóa khung Emacs của tôi khi khởi động?


66

Có cách nào để tối đa hóa cửa sổ của tôi khi khởi nghiệp không?

Hiện tại, tôi nhấn Control+ Windows Key+ Uptrên bàn phím của mình nhưng nó rất phiền phức khi làm điều đó mỗi lần.

Tôi đang sử dụng Emacs 24.4 trên Ubuntu 12.04.


1
Tôi không biết tổ hợp phím để tối đa hóa emacs. Cảm ơn vì điều đó và cũng là câu trả lời dưới đây!
Prasanna

Từ đâu bạn tìm ra sự kết hợp <kbd>![Windows Key][oldwinlogo]</kbd>Điều này không hiệu quả với tôi :-(
Prasanna

Câu trả lời:


71

Tôi có một phương pháp khác, mà tôi đã thử nghiệm với Emacs 24.3 và 24.4, cũng như trên cả Windows và GNU / Linux. Tôi đã đặt như sau trong tập tin init của tôi :

(add-to-list 'default-frame-alist '(fullscreen . maximized))

Tôi tin rằng điều này đã được sửa đổi một chút từ câu trả lời StackOverflow mà tôi đã tìm thấy cách đây một thời gian, nhưng dường như tôi không thể tìm thấy nó một lần nữa.

Chỉnh sửa: Một phần thưởng khác của phương pháp này là nó cũng áp dụng cho các máy khách mới kết nối với máy chủ Emacs của bạn (ví dụ emacsclient -c:).


3
+1 cho câu trả lời chính xác. Nếu tôi có thể chấp nhận điều này như một câu trả lời một lần nữa - tôi thực sự sẽ làm thế!
Prasanna

1
Tôi thích giải pháp này bằng cách sử dụng emacsclient, nhưng có một số khung bắt đầu tối đa hóa chúng sẽ ngăn không cho sử dụng chúng một cách chính xác, như bảng điều khiển ediff , có cách giải quyết nào không?
marcanuy

@marcanuy: Tôi không biết về một giải pháp ngoài đỉnh đầu, nhưng có thể đáng để đăng một câu hỏi mới cho điều đó.
Scott Weldon

31

Điều chỉnh ...-frame-alisttrong tệp init của bạn để cho Emacs biết cách tối đa hóa khung. Bạn cũng có nhiều tùy chọn về cách, chính xác, để tối đa hóa nó.

alist tùy chọn

Bạn có hai ...-frame-alistlựa chọn:

  1. default-frame-alist (như trong câu trả lời của @Scott Weldon)
  2. initial-frame-alist

Nếu bạn sử dụng default-frame-alist, nó sẽ tối đa hóa tất cả các khung: cả khung đầu tiên và bất kỳ khung nào khác bạn tạo. Đó có thể không phải là điều bạn muốn (hoặc có thể đó là: tôi là ai để phán xét?).

Nếu bạn sử dụng initial-frame-alist, nó sẽ chỉ tối đa hóa khung hình mà Emacs tạo khi khởi động, nhưng sẽ không chạm vào bất kỳ khung hình tiếp theo nào bạn tạo.

tùy chọn tối đa hóa

Để biết các tùy chọn tối đa hóa của bạn, hãy xem nút này của hướng dẫn để biết chi tiết. Phiên bản ngắn là bạn có thể đặt fullscreentham số thành:

  • fullwidth (làm cho khung càng rộng càng tốt, không chạm vào dọc)
  • fullheight (làm cho khung càng cao càng tốt, không chạm vào ngang)
  • fullboth (đặt chiều cao và chiều rộng thành kích thước của màn hình)
  • maximized (làm cho nó, tốt, tối đa hóa)

Sự khác biệt giữa fullbothmaximizedlà bạn có thể thay đổi kích thước cái trước bằng chuột, trong khi với cái sau bạn không thể.

thí dụ

Vì vậy, ví dụ, các dòng này sẽ 1) tạo khung hình ban đầu tối đa hóa và 2) tạo khung hình toàn phần (nhưng không phải toàn băng thông) trên mỗi khung hình tiếp theo:

(add-to-list 'initial-frame-alist '(fullscreen . maximized))
(add-to-list 'default-frame-alist '(fullscreen . fullheight))

3
Quả thực initial-frame-alistlà hữu ích hơn nhiều so với default-frame-alistkhi người ta sử dụng các công cụ như ediff.
giordano


9

Câu trả lời của @ Constantine đã trình bày cách có thể đạt được điều này bằng cách sửa đổi tệp init của bạn (nếu bạn sử dụng Emacs 24.4).

Nếu bạn khởi động Emacs từ dòng lệnh, từ dấu gạch ngang hoặc từ trình khởi chạy như Synapse hoặc krunner , bạn có thể chỉ định -mmtùy chọn (viết tắt --maximized) để đạt được kết quả tương tự:

emacs -mm

Các -mmtùy chọn lần đầu tiên được giới thiệu trong Emacs 23,2 , vì vậy giải pháp này không chỉ giới hạn việc phát hành ổn định mới nhất.


Điều khác biệt giữa giải pháp này với các đề xuất khác được đăng ở đây (tất cả đều tuyệt vời) là nó cho phép bạn quyết định trên cơ sở từng trường hợp cho dù bạn có muốn khung Emacs được tối đa hóa khi khởi động hay không.

Nếu bạn muốn một giải pháp lâu dài hơn, bạn có thể thiết lập một aliaslệnh cho hiển thị ở trên bằng cách thêm các mục sau vào .bashrc:

alias emacs='emacs -mm'

2
Một lợi ích khác của giải pháp này là emacs bắt đầu được tối đa hóa. Cách giải quyết tập tin ban đầu làm cho nó chuyển sang tối đa hóa trong quá trình khởi động, đó là loại gây phiền nhiễu.

1
Để thêm vào câu trả lời này: emacs -fsbắt đầu tối đa hóa Emacs lên toàn màn hình hoặc tối đa hóa tối đa đến tối đa.
Teemu Leisti

6

Để khởi động tối đa Emacs, hãy thêm vào tệp init của bạn:

;; Start maximised (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-maximized t)

Trong trường hợp bạn muốn đi toàn màn hình hoặc, như họ nói bây giờ, chế độ miễn phí phân tâm :

;; Start fullscreen (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)

LƯU Ý : Điều này cũng hoạt động trong Windows.


1

Tôi đang sử dụng như sau:

(when (eq system-type 'gnu/linux)
  (defun x11-maximize-frame ()
    "Maximize the current frame (to full screen)"
    (interactive)
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))
  (run-with-idle-timer 0.01 nil 'x11-maximize-frame)
  )

(when (eq system-type 'windows-nt)
  (w32-send-sys-command 61488)
)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.