To pytanie zostało pierwotnie zadane na /programming/15895313/let-emacs-move-the-cursor-off-screen , ale wszystkie odpowiedzi, które otrzymałem, brzmiały mniej więcej: „nie da się tego zrobić” , którego z emacsem po prostu nie akceptuję.
Czy można pozwolić Emacsowi na przesunięcie kursora poza ekran, tak jak działa większość edytorów tekstowych GUI? Jest to jedna z największych rzeczy, które niepokoją mnie, gdy używam Emacsa w dowolnym edytorze GUI. Kiedy przewijam w dół, kursor jest „przesuwany do przodu” u góry bufora.
Wcześniej myślałem, że jest to całkowicie niemożliwe, ponieważ jest to wbudowane w architekturę Emacsa, ale potem zobaczyłem wiele kursorów, co robi dokładnie to w przypadku wtórnych kursorów (zakładając, że zapobiegniesz działaniu funkcji przewijania na drugorzędnych kursory). Czy jest możliwe użycie wielu kursorów, aby mieć główny kursor w jakimś ukrytym buforze, a efektywny kursor jest tym, co faktycznie edytuję? A może jakaś inna sprytna sztuczka? A może mój Googling mnie zawiódł i to naprawdę jest już możliwe bez żadnej magii?
Korzystam z terminalu emacs, więc powinien tam działać.
Odpowiedzi:
Dostępny jest nowy pakiet o nazwie GNU ELPA,
scroll-restore
który próbuje rozwiązać ten problem. Istnieje kilka różnych zachowań do wyboru, ale sposób, w jaki je skonfigurowałem (patrz poniżej) powoduje, że kursor staje się niewidoczny podczas przewijania poleceń, a następnie przeskakuje z powrotem do pierwotnego położenia, gdy znów zaczynam pisać.Do tej pory napotkałem kilka błędów, ale pakiet wydaje się działać w większości w reklamie. Możesz to przetestować, instalując go za pomocą
Po zainstalowaniu pakietu możesz włączyć tryb pomocniczy za pomocą
Osobiście wiążę go z Scroll Lockkluczem, ponieważ wydaje się tak niewiarygodnie apropos! Oto, co dodaję do mojego pliku init:
źródło
Metodą, której zawsze używam, jest ustawienie znaku, do którego chcę wrócić, a następnie, kiedy skończę czytać bufor, zaznaczam go za pomocą
C-u C-SPC
. Nawet kiedy zapominam ustawić znak przed wędrówką, okazuje się, że wyskakiwanie tego znaku zwykle zbliża mnie do miejsca, skąd pochodzę. Wynika to częściowo z faktu, że niektóre polecenia (jakisearch
na przykład) ustawiają znak, nawet nie zdając sobie z tego sprawy. W trakcie edytowania nieumyślnie zostawiasz mały ślad bułki tartej.Z dokumentacji:
I prawie nigdy nie męczyć się z ustawiania zakładek lub rejestrach, ale prawie zawsze mogę znaleźć drogę z powrotem skąd jestem szybko stosując albo
C-u C-SPC
albopop-global-mark
.źródło
scroll-up
iscroll-down
automatycznie ustawić znak, aby naC-u C-SPC
pewno zabrał cię z powrotem, skąd przyszedłeś.Poniższy kod jest wystarczająco dobry, żebym mógł cofnąć się po przewinięciu kółka myszy:
źródło