Nie ma taka funkcjonalność wbudowana w Emacs, ale można siekać go dodając następujące linie do swojego pliku .emacs:
(defvar blink-cursor-interval-visible 1)
(defvar blink-cursor-interval-invisible 0.2)
(defadvice internal-show-cursor (before unsymmetric-blink-cursor-interval)
(when blink-cursor-timer
(setf (timer--repeat-delay blink-cursor-timer)
(if (internal-show-cursor-p)
blink-cursor-interval-visible
blink-cursor-interval-invisible))))
(ad-activate 'internal-show-cursor)
Emacs realizuje miganie kursora z funkcją przełączania nazwie przez zegar. Za każdym razem, gdy funkcja jest wywoływana, ukrywa ona kursor, jeśli jest on aktualnie widoczny, lub wyświetla go, jeśli jest niewidoczny. Niestety, timer wywołuje tę funkcję w ustalonych odstępach czasu.
Aby uzyskać różne czasy opóźnień w zależności od stanu kursora, powyższy kod advises służy do wewnętrznej funkcji wyświetlania lub ukrywania kursora. Za każdym razem, gdy funkcja ta jest wywoływana, rada zmienia czas opóźnienia timera na 1 lub 0.2, w zależności od tego, czy kursor jest widoczny, czy nie. Oznacza to, że za każdym razem, gdy kursor jest ukryty lub pokazany, czas opóźnienia timera zostanie zmieniony.
Całkiem hackish, ale to załatwia sprawę.
Czy mógłbyś wyjaśnić, jak to działa? Jestem całkiem zainteresowany. –
Dzięki za odpowiedź. Łamie się, jeśli wywołasz tryb migającego kursora, ale działa zgodnie z oczekiwaniami :) – Jesse
Czy mógłbyś się zastanowić, kiedy to się złamie? – Thomas