Ketika saya membuka REPL menggunakan C-c C-l
, jendela yang dibuatnya tampak istimewa (latar belakang lebih gelap, keluar dari proses saat ditutup, ...).
Tampaknya juga selalu membagi layar saya secara horizontal, yang terkadang berguna, terkadang mengganggu. Tidak cukup tahu tentang emacs, sepertinya saya tidak dapat menemukan cara untuk memindahkan jendela ini ke sisi kanan.
Saya telah berhasil mendapatkannya di bingkai lain dengan menggunakan perintah switch-buffer, tetapi saya tidak dapat menutup yang asli karena membunuh proses dan semua bingkai yang memiliki buffer di dalamnya.
Bisakah Anda memberi saya petunjuk tentang cara menangani buffer khusus ini dan bagaimana tampilannya? :(
Terima kasih!
Hmm, ada banyak bagian yang bergerak di sini. Saya tidak yakin dengan apa Anda terikat C-c C-l
. Jika Anda tidak menggunakan perintah +eval/repl
untuk memulai repl mode, Doom akan memperlakukan buffer repl seperti buffer khusus yang umum.
Dalam hal ini, dua variabel yang relevan adalah shackle-default-alignment
dan shackle-rules
, yang memberi tahu Emacs cara menangani jendela yang memenuhi kriteria tertentu.
Di akhir shackle-rules
ada dua aturan catch-all:
(set! :popup
'("^\\*" :regexp t :noselect t :autokill t)
'("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))
Dua masalah di sini adalah :autokill t
(yang memastikan buffer dan proses terkait dimatikan bersama-sama) dan karena tidak ada :align
ditentukan, ia menggunakan shackle-default-alignment
, yang defaultnya adalah 'below
.
Jadi, bagaimana kita memperbaikinya?
Berikut adalah tiga cara:
Cukup tentukan aturan utama untuk repl Anda secara khusus:
(set! :popup "*my-repl-buffer*" :align 'left :noesc t)
Lihat M-x doom/describe-setting RET :popup
untuk detailnya.
Aktifkan mode minor +eval-repl-mode
di repl Anda:
(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
Anda akan menemukan aturan popup ini di modules/feature/eval/config.el :
(set! :popup
'(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
:size 16 :noesc t)
Ikat C-c C-l
ke +eval/repl
dan gunakan itu untuk memanggil repl Anda. Sebagian besar mode memiliki default yang masuk akal. Jika tidak membuka repl yang Anda inginkan, Anda dapat mengubah asosiasi mode-utama->repl dengan pengaturan :repl
, mis.
(set! :repl 'python-mode #'+python/repl)
Fungsi :repl want harus mengembalikan buffer yang berisi repl.
Semoga membantu!
Oh, saya lupa menyebutkan: saat ini tidak ada cara untuk memindahkan jendela sembulan langsung (saya tidak pernah perlu melakukannya). Itu adalah sesuatu yang akan saya coba perbaiki.
Sepertinya itu semua bantuan yang saya butuhkan!
Untuk lebih spesifik, saya sebenarnya berbicara tentang intero
REPL, dimulai dengan perintah yang disebut intero-repl-load
. Saya tidak tahu mekanisme apa yang digunakannya saat itu.
Saya akhirnya pergi dengan:
(set! :popup "^\\*intero:" :regexp t :align 'right :size 80)
di modules/private/ptival/init.el
, bekerja seperti pesona!
Terima kasih telah meluangkan waktu untuk menjelaskan semua ini kepada saya! Saya tidak berpikir saya akan menemukan ini sendiri dalam jumlah waktu yang masuk akal! 👍
Komentar yang paling membantu
Hmm, ada banyak bagian yang bergerak di sini. Saya tidak yakin dengan apa Anda terikat
C-c C-l
. Jika Anda tidak menggunakan perintah+eval/repl
untuk memulai repl mode, Doom akan memperlakukan buffer repl seperti buffer khusus yang umum.Dalam hal ini, dua variabel yang relevan adalah
shackle-default-alignment
danshackle-rules
, yang memberi tahu Emacs cara menangani jendela yang memenuhi kriteria tertentu.Di akhir
shackle-rules
ada dua aturan catch-all:Dua masalah di sini adalah
:autokill t
(yang memastikan buffer dan proses terkait dimatikan bersama-sama) dan karena tidak ada:align
ditentukan, ia menggunakanshackle-default-alignment
, yang defaultnya adalah'below
.Jadi, bagaimana kita memperbaikinya?
Berikut adalah tiga cara:
Cukup tentukan aturan utama untuk repl Anda secara khusus:
Lihat
M-x doom/describe-setting RET :popup
untuk detailnya.Aktifkan mode minor
+eval-repl-mode
di repl Anda:(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
Anda akan menemukan aturan popup ini di modules/feature/eval/config.el :
Ikat
C-c C-l
ke+eval/repl
dan gunakan itu untuk memanggil repl Anda. Sebagian besar mode memiliki default yang masuk akal. Jika tidak membuka repl yang Anda inginkan, Anda dapat mengubah asosiasi mode-utama->repl dengan pengaturan:repl
, mis.(set! :repl 'python-mode #'+python/repl)
Fungsi :repl want harus mengembalikan buffer yang berisi repl.
Semoga membantu!