Doom-emacs: Bagaimana cara memindahkan jendela REPL?

Dibuat pada 8 Agu 2017  ·  3Komentar  ·  Sumber: hlissner/doom-emacs

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!

discussion

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 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:

  1. 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.

  2. 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)
    
  3. 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!

Semua 3 komentar

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:

  1. 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.

  2. 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)
    
  3. 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! 👍

Apakah halaman ini membantu?
0 / 5 - 0 peringkat