Tamponları değiştirirken emac'lerin otomatik olarak çerçeve değiştirmesini önleyin


13

Tamponları değiştirdiğimde, tampon zaten açıksa emacs mevcut bir çerçeveye geçecektir.

Bunu kullanarak ido ile geçiş yaparken nasıl önleneceğini buldum:

(setq ido-default-buffer-method 'selected-window)

Ancak bu yeterli değildir: bir lisp hatası varsa örnek için emacs otomatik olarak arabelleğe * Backtrace * geçecek ve zaten açıksa çerçeveleri değiştirecektir.

Tamamen emac'ların mevcut bir çerçeveye geçmesini önlemenin bir yolu var mı?

Yanıtlar:


3

Bunun için bir seçenek yok gibi görünüyor.

Bir tampon bulmak için fonksiyon yapar tüm karelerde veya yalnızca geçerli karede görünmek belirtmek için izin:

(get-buffer-window &optional BUFFER-OR-NAME ALL-FRAMES)

Ancak, argüman switch-to-bufferiçin 0 geçişinin uygulanması, ALL-FRAMEStüm çerçevelerde görüneceği anlamına gelir.

Sanırım bu argümanı değiştirmek için :aroundtavsiyeyi kullanabilirsiniz get-buffer-window, eğer bu davranışı gerçekten küresel olarak önlemek istiyorsanız ... ama bunun başka şeyleri kıracağından şüpheleniyorum.


Ben de bundan korkuyordum. Get-buffer-window etrafında ek tavsiye deneyebilirim, ancak yaygın olarak kullanılan işlevleri tavsiye etmekten çok hoşlanmıyorum.
— MonsieurBanana

Evet, muhtemelen sorun yaratacak gibi görünüyor. popwinPaketi özel arabelleklerle başa çıkmanın bir yolu olarak kontrol etmek isteyebilirsiniz - bununla birlikte bulduğunuz ido yapılandırmasının yeterli olup olmadığından emin değilsiniz.
— glucas

1
Aslında, burada tekneyi kaçırmış olabilirim. 'Pencere Seçme' ve 'Eylem İşlevlerini Göster' bölümlerindeki Emacs kılavuz bölümlerine göz atmalısınız. Özellikle, kullanımı inhibit-switch-frameyararlı görünmektedir. (Bu seçenekleri henüz deneme şansım olmadı.)
— glucas


Teşekkürler, bu SE iplik çok yararlı. İçin dokümantasyon display-bufferve display-buffer-alistbaşım ağrıtıyor, ama bir çözüm bulana kadar sadece an meselesi.
— Mösyö
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.