Cara bawaan untuk melakukan ini adalah dengan register.
Misalnya digunakan C-xrwauntuk menyimpan konfigurasi jendela saat ini untuk mendaftar a.
Kemudian Anda dapat menggunakan penjilidan bawaan C-x1untuk dijalankandelete-other-windows
setelah Anda selesai melihat file tunggal, gunakan C-xrjauntuk membuka kembali ke konfigurasi jendela yang disimpan dalam register a.
Pendeknya:
C-xrwa (simpan config ke register)
C-x1 (hapus jendela lain)
C-xrja (mendaftar ulang konfigurasi jendela)
Saya menemukan register menjadi sulit digunakan, saya menggunakan custom config stack window untuk mengelola konfigurasi saya.
Saya memiliki dua binding yang mendorong konfigurasi saat ini ke tumpukan, dan muncul dan menerapkan konfigurasi atas.
Jadi dalam sceneario Anda, saya akan melakukan pengikatan push saya, lalu Cx 1, lalu melakukan pengikatan pop saya.
Ini kodenya:
(defvar winstack-stack '()
"A Stack holding window configurations.
Use `winstack-push' and
`winstack-pop' to modify it.")
(defun winstack-push()
"Push the current window configuration onto `winstack-stack'."
(interactive)
(if (and (window-configuration-p (first winstack-stack))
(compare-window-configurations (first winstack-stack) (current-window-configuration)))
(message "Current config already pushed")
(progn (push (current-window-configuration) winstack-stack)
(message (concat "pushed " (number-to-string
(length (window-list (selected-frame)))) " frame config")))))
(defun winstack-pop()
"Pop the last window configuration off `winstack-stack' and apply it."
(interactive)
(if (first winstack-stack)
(progn (set-window-configuration (pop winstack-stack))
(message "popped"))
(message "End of window stack")))
Anda kemudian dapat mengikat winstack-push
sesuatu seperti C-cC-u, dan winstack-pop
untuk C-cC-odengan mudah melompat-lompat.
Saya menggunakan
winner-mode
. Inilah pengaturan saya:Saya tidak tahu apakah ada cara untuk mem-bookmark tata letak atau sesuatu, tetapi dapat terus beralih kembali ke tata letak sebelumnya sudah cukup bagi saya.
sumber
Emacs menawarkan register untuk menyimpan dan menerapkan data seperti konfigurasi jendela Anda saat ini, ini dapat dilakukan dengan
C-x r w
danC-x r j
. Namun pendekatan ini menjadi sulit karena Anda perlu mengingat register jendela.Ada beberapa paket untuk memperbaikinya. iregister membuat fitur dasar ini lebih dapat diperiksa dan interaktif. Yang lain saya sadar menggunakannya tanpa memengaruhi register, seperti elscreen dan escreen yang menggunakan bilah header untuk menampilkan tab. workgroups dan workgroups2 adalah dua pendekatan yang lebih baru dan lebih luas untuk masalah ini. Saya pribadi tidak suka dan karena itu menulis sendiri di antara keduanya dan semoga lebih sedikit bug dan kompleksitasnya.
sumber
(window-configuration-to-register "1")
sebagai perintah di .emacs saya, tetapi tidak berhasilAnda dapat menyimpan tata letak jendela saat ini ke register dan kemudian mengembalikannya menggunakan
jump-to-register
. Perintahwindow-configuration-to-register
terikatC-x r w
secara default.Misalnya, ketika Anda mengatur windows dengan cara yang bermanfaat, Anda dapat menyimpannya untuk didaftarkan
i
menggunakan:C-x r w i
dan mengembalikan tata letak nanti menggunakanC-x r j i
.sumber
Zygospore menyediakan perbaikan cepat untuk situasi di mana Anda memiliki beberapa jendela terbuka, dan ingin memaksimalkan salah satunya untuk sementara. Ini memodifikasi perilaku
C-x 1
. Ketika Anda memiliki beberapa jendela terbuka, itu berperilaku seperti defaultdelete-other-windows
, dan menghapus semua jendela kecuali yang Anda lihat. Ketika Anda menekannya lagi, itu mengembalikan windows lainnya.Mode pemenang menyediakan solusi yang lebih umum, tetapi zygospore sangat bagus untuk memperbesar sementara pada satu jendela dalam sebuah bingkai. Yang terbaik adalah tidak menggunakan ikatan kunci baru - itu mendefinisikan kembali dengan
C-x 1
cara yang sangat intuitif, sehingga tidak ada ikatan baru untuk dipelajari.sumber
Ini pertanyaan yang menarik. Beberapa tahun yang lalu saya menyelidiki semua solusi. Hanya workgroups2.el yang cukup berat untuk menutupi semua kasing sudut.
Tapi workgroups2 UI adalah bencana. Misalnya, jika Anda mengaktifkan worksgroup-mode (seperti yang disarankan README), tata letak sebelumnya akan dimuat secara otomatis saat emacs startup. Itu membuat startup sangat lambat SETIAP waktu.
Solusi saya adalah memperlakukan workgroups2 sebagai kumpulan API, bukan alat yang dapat digunakan di luar kotak. Jadi saya mengubah interaksi UI default dengan menggunakan ivy-mode ( https://github.com/abo-abo/swiper ) dari @ abo-abo
Beralih jendela penuh itu mudah, gunakan API dari mode pemenang sudah cukup.
Berikut adalah kode lengkap (saya hanya menggunakan
M-x toggle-full-window
,M-x wg-create-workgroup
danM-x my-wg-switch-workgroup
, Anda juga perlu menginstal swiper, seperti yang saya sebutkan di atas),sumber