2010-06-11 11 views
8

Nie jestem nawet pewien, czy jest to poprzednie polecenie, czy nie zakończone polecenie, czy coś w tym rodzaju, ale wiem, że naprawdę tego nie lubię.Jak mogę zapobiec wyświetlaniu poprzednich poleceń w programie Emacs w minikomputerze?

Mój problem polega na tym, że niektóre polecenia (lub komunikaty, lub coś w tym rodzaju) utknęły w mini-buforze, więc kiedy wpisuję nowe polecenie, pojawia się tam bardzo szybko, a następnie minikomputer powraca do upartego polecenia . Niektóre polecenia wydają się być wybrane, a po użyciu wielu poleceń coś innego utknie tam, ale zawsze jest coś pokazanego, czego nie chcę widzieć. Próbowałem wpisywać C-g wiele razy, aby sprawdzić, czy to zakończy, ale to nie działa.

Jest to obraz tego, co mam teraz:

alt text

To nie ma znaczenia, co robię, że nieco

Label: HL-linia

nie odejdzie. Opuszcza na chwilę, gdy nowe polecenie jest wpisane, ale wraca. Nie podoba mi się to, jest mylące, i wolałbym widzieć tam ostatnio używane polecenie.

Sprawdziłem opcje dostosowywania mini-bufora (dolna część jest widoczna na moim obrazku), ale nie znalazłem niczego, co wydawałoby się być tym, czego szukałem.

Wszelkie pomysły?

+2

Jesteś w (dwóch poziomach) rekursywnej edycji, co widać po [[..]] wokół nawiasów otaczających nazwy trybów. Możesz przerwać edycję rekursywną za pomocą "C-]". Zobacz http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Recursive%20Edit, aby uzyskać więcej informacji. –

Odpowiedz

10

Minikomputer stracił ostrość. Wypróbuj C-x o (Control + x o), aby odzyskać ostrość. Aby anulować polecenie, naciśnij C-g , gdy w mini-buforze ustawiono ostrość.

+0

Och, więc to było jak niedokończone polecenie? Zrobiłem C-x o i musiałem skończyć cały ten strumień poleceń (aby wstawić otoczenie w lateksie, umieścić etykietę, pozycję, itp.), Aby przedmiot zniknął. Dzięki za to! – Vivi

14

Są szanse, że dostaniesz się do sytuacji, ponieważ uruchomiłeś polecenie i użyłeś myszy, aby wybrać coś w innym oknie. Jeśli tak jest, możesz pozwolić programowi Emacs automatycznie przerwać komendę, gdy wykonasz taką akcję.

Jest to kod, który chcesz dodać do listy .emacs:

(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) 

Uwaga: Złapałam to od mojego blog post on the topic.

Istnieje również pytanie dla superużytkownika, które rozwiązuje ten problem, a moja odpowiedź zawiera polecenie: jump back to the minibuffer.

+0

Całkiem możliwe, że to zrobiłem ... Próbuję jednak nie używać myszy, więc mam nadzieję, że to polecenie wkrótce stanie się zbędne. Czy tak się dzieje, gdy używam również ** C-x b **? Przy okazji, wolę kod, który umieściłeś w odpowiedzi na pytanie administratora i link w komentarzu do swojego wpisu na blogu :) (ten, który daje klucz do powiązania, aby przejść do aktywnego okna minibufora) – Vivi

+0

@Vivi Ahhh .. Popraw odpowiedź SU. Nie jestem taki szczęśliwy, jak SO i SU podzieliły się pytaniami Emacsa. Łączę to również w tej odpowiedzi. –

+1

Może się to zdarzyć, jeśli uruchomisz polecenie i uzyskasz błąd. Sztuczka, aby uzyskać skupienie w mini-buforze, a następnie Ctrl-G, aby przerwać, naprawi to. –

Powiązane problemy