2010-04-05 11 views
60

Domanda veloce: Come si specifica il numero di caratteri in una finestra divisa? C-x-3 Divide la mia finestra in due finestre in modo uniforme, ma una successiva divisione dividerà una delle finestre a metà. Vorrei 3 finestre di uguale dimensione. La documentazione dice che dovrei essere in grado di specificare il numero di caratteri per il buffer sinistro come parametro, ma non riesco a farlo funzionare. Qualche idea per la sintassi?emacs diviso in 3 finestre pari

Grazie.

risposta

17

Per specificare il numero di caratteri nella finestra divisa, effettuare:

C-u numero-di-caratteri C-x 3

+4

Baller !!!!!!!!! – Dirk

+0

Non funziona con Cocoa Emacs in modalità a schermo intero, purtroppo. –

+0

La larghezza della finestra è troppo piccola (dopo la divisione) – Mittenchops

207

C-x 3 due volte seguito da C-x + di dimensioni ugualmente tutte le finestre.

+7

C'è un modo per far sì che Emacs crei immediatamente tre finestre uguali con un solo comando, invece di fare 'C-x 3 C-x 3 C-x +'? – SabreWolfy

+2

@sabrewolfy crea una macro – ragerdl

14

Ho il seguente nel mio .emacs:

(defadvice split-window-horizontally (after rebalance-windows activate) 
    (balance-windows)) 
(ad-activate 'split-window-horizontally) 

questo rende emacs chiamano rebalance-windows (che è ciò che è destinato a C-x + per impostazione predefinita) dopo ogni ridimensionamento. Non è quello che voglio sempre, ma lo voglio molto più spesso del comportamento predefinito.

+0

grazie per questo, ma non sono sicuro che tu abbia bisogno della chiamata a '(ad-activate ...)' dato che hai incluso 'activate' in un modulo separato. – wpcarro

9

aggiungere .emacs. Ho mappato a C-x 4, ma qualcuno ha un'idea migliore?

(defun split-3-windows-horizontally-evenly() 
    (interactive) 
    (command-execute 'split-window-horizontally) 
    (command-execute 'split-window-horizontally) 
    (command-execute 'balance-windows) 
) 

(global-set-key (kbd "C-x 4") 'split-3-windows-horizontally-evenly) 
+4

Non lo assegnerei a 'C-x 4'. Questo è il prefisso predefinito per un mucchio di altri comandi. Vedi 'C-x 4 C-h' (senza impostare la rilegatura, ovviamente). – phils

+2

@phils whoa dopo tutti questi anni e non ho mai saputo come ottenere una lista di comandi con qualche prefisso comune ... Adoro emacs. – mgalgs

4
(defun wenshan-split-window-vertical (&optional wenshan-number) 
"Split the current window into `wenshan-number' windows" 
    (interactive "P") 
    (setq wenshan-number (if wenshan-number 
          (prefix-numeric-value wenshan-number) 
         2)) 
    (while (> wenshan-number 1) 
    (split-window-right) 
    (setq wenshan-number (- wenshan-number 1))) 
    (balance-windows)) 

Questa funzione può essere utilizzata per dividere la finestra corrente in N di Windows, è possibile digitare "C-u 3 M-x Wenshan-split-window-verticale" per ottenere ciò che si desidera.

2

Se si utilizza male fare C-x 3 e poi C-w =