Bagaimana cara memaksa buffer tertentu untuk membuka di jendela baru?

12

Saat melakukan perubahan di Magit, penting untuk membuka tampilan diff sambil menambahkan detail tentang komit.

Di Magit, kita melihat perbedaan di *magit ..*buffer. Ketika Anda menekan ccsaat kursor berada pada file Staged , buffer komit Magit .. COMMIT_EDITMSGmuncul. Secara default, buffer baru ini menggantikan *magit ..*buffer yang menunjukkan diff komit.

PERTANYAAN - Bagaimana cara membuat .. COMMIT_EDITMSGbuffer terbuka di jendela baru (menggunakan kembali jendela yang berbeda atau membuat jendela baru jika bingkai hanya memiliki 1 jendela untuk memulai) sehingga saya dapat melihat buffer *magit ..*dan .. COMMIT_EDITMSG?

Kaushal Modi
sumber

Jawaban:

17

Dimungkinkan untuk mengonfigurasi cara buffer membuka (dalam bingkai / jendela yang sama atau bingkai / jendela yang berbeda) menggunakan display-buffer-alist. Lihat referensi di bawah ini untuk mempelajari lebih lanjut tentang variabel ini.

Larutan

Kita perlu memberi tahu emacs untuk selalu membuka buffer yang diakhiri dengan COMMIT_EDITMSGdi jendela tetapi tidak di jendela yang sama ( *magit ..*).

Tambahkan cuplikan berikut ke init.elsetelah (require 'magit)untuk menentukan tindakan ini.

(add-to-list 'display-buffer-alist
                 '(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
                                        ((inhibit-same-window . t)))))

Kerusakan solusi

display-buffer-alistadalah an alistyang memanggil FUNCTION(atau daftar fungsi) dengan ALISTparameter ketika a CONDITIONbenar. The display-buffer-alistdapat direpresentasikan sebagai,

'(CONDITION . (FUNCTION . ALIST))
  • Di sinilah CONDITIONnama buffer diakhiri dengan COMMIT_EDITMSGdan diwakili oleh ".*COMMIT_EDITMSG".
  • The FUNCTIONpanggilan adalah display-buffer-pop-up-windowkarena kami ingin membuat jendela untuk buffer ini. Alih-alih menentukan fungsi dengan sendirinya itu dimasukkan sebagai daftar fungsi tunggal (display-buffer-pop-up-window)sehingga lebih banyak fungsi dapat dengan mudah ditambahkan ke daftar jika diperlukan di masa depan.
  • The ALISTmengandung (inhibit-same-window . t)karena kami tidak ingin penyangga ini untuk membuka di jendela yang sama.

Referensi

Kaushal Modi
sumber
2

Dimulai dengan v2.1.0Magit secara default menunjukkan perubahan yang dilakukan di samping buffer yang digunakan untuk menulis pesan komit.

tarsius
sumber