2010-06-11 9 views
8

Bunun bir önceki komut veya bitmemiş bir komut olduğundan ya da her neyse, emin değilim, ama bilmiyorum gerçekten bunu sevmiyorum.Mini tamponun Emacs'te önceki komutları görüntülemesini nasıl engelleyebilirim?

Sorunum, bazı komutların (veya iletilerin veya herhangi bir şeyin) mini tamponda sıkışıp kalmasıdır; böylece yeni bir komut yazdığımda çok hızlı bir şekilde orada görünür ve sonra mini-arabellek inatçı komutuna geri döner . Bazı komutlar seçilmiş gibi görünüyor ve çok sayıda komut kullandıktan sonra başka bir şey takılıp kalıyor, ama her zaman görmek istemediğim bir şey var. Çıkıp çıkmayacağını görmek için C-g yazarak çok defa yazmayı denedim, ama işe yaramıyor.

Bu

ne var şimdi bir resmi:

alt text

Ne yaptığım önemli değil, o biraz

Etiket: hl-line

ayrılmayacak. Yeni bir komut yazıldığında anlık olarak ayrılır, ancak geri gider. Bundan hoşlanmıyorum, kafa karıştırıcı ve son kullanılan komutu görmeyi çok isterim.

Mini tampon için özelleştirme seçeneklerini kontrol ettim (resmin alt kısmı görüntümde görülebilir), ancak aradığım şey gibi görünen hiçbir şey bulamadım.

Herhangi bir fikrin var mı?

+2

[[..]] tarafından, mod adlarını çevreleyen parantezlerin etrafında görülebileceği gibi, yinelemeli düzenlemede (iki düzeyde) bulunuyorsunuz. Yinelemeli düzenlemeyi 'C-]' yi kullanarak iptal edebilirsiniz. Daha fazla bilgi için http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Recursive%20Ekrediye bakın. –

cevap

10

Mini arabellek, odağı kaybetti. Odağı yeniden kazanmak için C-x o (Control + x o) öğesini deneyin. Komutu iptal etmek için, mini tamponda odağına sahip olduğunuzda C-g tuşlarına basın.

+0

Oh, bitmemiş bir komut gibi miydi? Ben C-x o yaptım ve tüm bu komutların akışı (lateks bir ortam eklemek, etiket, pozisyon, vb koymak) bitirmek zorunda kaldı, böylece şey kaybolacaktı. Bunun için teşekkürler! – Vivi

14

Bir komut başlattığınız ve farenizi farklı bir pencerede bir şey seçmek için kullandığınız için durumla karşılaşırsınız. Bu durumda, böyle bir işlem yaptığınızda Emacs komutunu otomatik olarak iptal edebilirsiniz.

(defun stop-using-minibuffer() 
    "kill the minibuffer" 
    (when (and (>= (recursion-depth) 1) (active-minibuffer-window)) 
    (abort-recursive-edit))) 

(add-hook 'mouse-leave-buffer-hook 'stop-using-minibuffer) 

Not:

Bu

size .emacs eklemek istiyorum koddur benim blog post on the topic bu yakaladı.

Ayrıca, bu soruna yönelik bir süper kullanıcı sorusu var ve cevabım jump back to the minibuffer'a bir komut sağlıyor.

+0

Oldukça ben bunu yaptım ... Fareyi kullanmamaya çalışıyorum ama umarım bu komut yakında giderilir. Bu, ** C-x b ** yi kullandığımda da olur mu? Bu arada, bir süper kullanıcı sorusu cevabına koyduğunuz kodu tercih ediyorum ve blog yayınınıza yorum yazarak :) (aktif minibuffer penceresine gitmek için bir anahtar bağlaması veren) – Vivi

+0

@Vivi Ahhh .. SU cevap doğru. SO ve SU'nun Emacs sorularını nasıl böldüğünden pek memnun değilim. Bu cevabın da bağlantısını yapacağım. –

+1

Bir komut başlatır ve bir hata durumu olursa, bu durum oluşabilir. Mini-buffer'a odaklanma hilesi ve daha sonra iptal etmek için Ctrl-G bunu düzeltecektir. –