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.