Bagaimana cara Mengubah ukuran layar terbagi emacs windows?

12

Jika saya memiliki Emacs membelah secara horizontal dan di atas saya mengedit kode elisp dan di bagian bawah saya di shell. Secara default, Emacs membuat dua jendela sama ukurannya, tapi saya ingin buffer shell lebih kecil. Saya bertanya-tanya bagaimana saya bisa melakukan itu.

Pertanyaan asli yang diajukan oleh Steve pada SO: Bagaimana cara Mengubah ukuran layar emacs windows split?

Luke Shimkus
sumber
4
Apakah kita sengaja menggandakan pertanyaan dari SO? stackoverflow.com/questions/4987760/…
phils
@phils, Tidak, saya tidak. Tapi saya akan membuat tautan ke posting. Terima kasih untuk wawasan.
Luke Shimkus
lebih dari itu, yang itu sedikit terlalu mudah :)
Nsukami _
1
Astaga, edit hebat @ Raja. Sekarang pertanyaan ini telah menjadi sangat berbeda dari yang Anda salin ...
rsenna
2
itu membuat saya berpikir bahwa, pertanyaan terkait emac pada SO harus dimigrasikan. Ini akan menghindari keributan (kecil)
Nsukami _

Jawaban:

18

C-x-( shrink-window-if-larger-than-buffer) untuk mengecilkan jendela agar sesuai dengan isinya.

C-x+( balance-windows) untuk membuat jendela sama tinggi dan lebarnya.

C-x^( enlarge-window) untuk menambah tinggi dengan 1 baris, atau nilai arg awalan. Arg negatif mengecilkan jendela. Contoh:C-u - 3 C-x ^

C-x{( shrink-window-horizontally)

C-x}( enlarge-window-horizontally)

Nsukami _
sumber
+1 untuk perintah menyusut. Saya mencari cara untuk menyusut dengan satu baris. Apa C-u?
Vass
3
@ Vas C-umemulai argumen numerik untuk perintah berikut. Jika Anda ingin menambah 5 kali, alih-alih mengetik, 5 kali, perintah yang sama, Anda mengetikC-u 5 C-x ^
Nsukami _
1
Perlu juga dicatat bahwa C-unilai default adalah 4, artinya C-u C-x ^akan melakukan hal yang sama C-u 4 C-x ^.
ramnes
7

Saya juga merekomendasikan untuk memeriksa windresizepaket dari ELPA , atau windsizepaket dari MELPA .

Dengan windresize, Anda dapat melakukan M-x windresizedan kemudian menggunakan tombol panah untuk memindahkan batas-batas jendela dengan mudah, menekan ENTER ketika Anda selesai.

Lee H
sumber
3

Anda dapat menggunakan C-x^( enlarge-window) di jendela atas untuk membuatnya lebih besar (dan karenanya membuat jendela bawah lebih kecil).

Dengan menggunakan mouse, Anda juga dapat menyeret modeline dari jendela atas untuk mengubah ukurannya.

François Févotte
sumber
ide bagus untuk membuat jendela lain lebih kecil dengan memperbesar yang di atasnya!
Vass
0

Juga perhatikan bahwa seperti dalam sistem jendela, Anda dapat menggunakan mouse dengan mode xterm-mouse untuk menyeret pembagi jendela.

Perhatikan bahwa ini kadang-kadang tampaknya sedikit tergantung pada program xterm atau xterm yang sebenarnya, dan iirc di Emacsen yang lebih lama itu tidak dapat diandalkan tentang kolom ke-100 kecuali jika Anda sedikit bermain dengan variabel lingkungan TERM, tetapi di Emacs saya 24.2 .1 berfungsi dengan baik dengan emacs -nw -q (mis. Benar-benar mengabaikan .emacs saya dan secara manual mengaktifkan xterm-mouse-mode dengan M-x xterm-mouse-mode)

Pembaruan: FYI untuk kelengkapan Saya akan menunjukkan ini juga berfungsi untuk pembagi vertikal (mis. Ketika Anda telah membagi dengan C-x 3)

Tandai Aufflick
sumber
0

Saya pernah menulis mode minor sederhana (untuk penggunaan pribadi saya) untuk secara interaktif resize-frame. Saya pikir ini seharusnya nyaman.

https://gist.github.com/kuanyui/65a408d393871048771c

M-x resize-frameuntuk mengaktifkan resize-framemode minor:

  1. Tekan arrow keysuntuk menyesuaikan ukuran secara horizontal / vertikal.
  2. Tekan tombol lainnya untuk menonaktifkan.
kuanyui
sumber