Obecnie pracuję z ruby i rspec. Naprawdę podoba mi się pomysł posiadania oddzielnej ramki na innym monitorze pokazującym mi bufor kompilacji. Moja obecna konfiguracja używa ramki „kodu” (w której faktycznie wykonuję pracę) i ramki „wyniku testu” (w której widzę wyniki rspec)
Problem polega na tym, że kiedy próbuję otworzyć jakiś błąd kompilacji lub plik w ramce „wyniku testu”, okno dzieli się w tej ramce. To, co naprawdę chciałbym zrobić, to otworzyć go w mojej ramce „kodu”.
Już korzystam z tej opcji display-buffer-reuse-frames
. Próbowałem również ustawić okno wyników kompilacji dedicated
, ale za każdym razem, gdy emacs próbuje otworzyć nowe okno, tworzona jest nowa ramka (co jest szczególnie okropne, jeśli używasz Helma).
Czy jest jakiś prosty sposób na osiągnięcie tego?
popwin.el
z MELPA do kompilacji wyskakujących okienek i pomocy buforom, które trwają doC-g
naciśnięcia. Jeśli potrzebuję ich w pełnym wymiarze godzin, po prostu przełączam się na nie w innym oknie. Nie myślałem o przypinaniu okien, ponieważ emacs tak robisplit-windows-sensibly
.Odpowiedzi:
Musisz skonfigurować 600-funtowego goryla,
display-buffer-alist
który określa sposóbdisplay-buffer
wyboru miejsca wyświetlania bufora. Sprawia, żedisplay-buffer-reuse-frames
przestaje być aktualny w nowszych emacsenach. Oto konfiguracja, która powinna cię poprowadzić (przynajmniej emacs 24.3).Jak widać, używam wyrażenia regularnego, aby dopasować bufor dziennika kompilacji. Dokumentacja
display-buffer
powinna dać ci wyobrażenie o tym, co się dzieje. Tylko jedna wiadomość, że nie jest to najbardziej przyjemna dokumentacja, jaką kiedykolwiek przeczytałeś. Dodałem je sekwencyjnie, aby wyrażenie regularne w dzienniku kompilacji zostało dopasowane przed ogólnym wyrażeniem regularnym. Dostosuj wyrażenie regularne do swoich potrzeb.EDYCJA Aby dowolna ramka była niewypełniona, możesz ją wyświetlić
M-: (set-frame-parameter nil 'unsplittable t)
w tej konkretnej ramce. Wymień zero na wymagane,FRAME
jeśli robisz to z elisp. Pomiędzy tymi dwoma ustawieniami powinna ona wyłączać ramkę kompilacji, chyba że konkretnie znajdziesz plik w tej ramce.źródło