点滅ONと点滅OFFに異なる間隔を設定したい。つまり、カーソルを1秒間表示し、0.2秒間OFFにします。 私はカーソルのドキュメントを読んだが、私が見つけた最も近い点滅と点滅の両方が点滅する点滅カーソル間隔です。Emacs - カーソルの点滅の間隔をオン/オフに設定する
これをEmacsでカスタマイズする最良の方法は何ですか?
点滅ONと点滅OFFに異なる間隔を設定したい。つまり、カーソルを1秒間表示し、0.2秒間OFFにします。 私はカーソルのドキュメントを読んだが、私が見つけた最も近い点滅と点滅の両方が点滅する点滅カーソル間隔です。Emacs - カーソルの点滅の間隔をオン/オフに設定する
これをEmacsでカスタマイズする最良の方法は何ですか?
ありのEmacsに組み込まれ、そのような機能はませんが、あなたはあなたの.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が呼ばれるトグル機能を持つカーソルの点滅を実装タイマーによって。関数が呼び出されるたびに、カーソルが現在表示されている場合は非表示になり、表示されていない場合は非表示になります。残念ながら、タイマーは一定の間隔でこの関数を呼び出します。
カーソルの状態に応じて異なる遅延時間を実現するために、上記コードadvisesは、カーソルを表示または非表示にする内部関数です。その関数が呼び出されるたびに、アドバイスは、カーソルが表示されているかどうかに応じて、タイマーの遅延時間を1または0.2に変更します。つまり、カーソルが表示されたり表示されたりするたびに、タイマーの遅延時間が変更されます。
非常にハッキリですが、そのトリックはあります。
blink-cursor-timer-function
機能を変更して、私が信じたいものをサポートすることができました。
まず、あなたは、このコードでは、トリックを行う必要があります.2
にblink-cursor-interval
の値を変更する必要があります: blink-cursor-timer-function
はすべてのblink-cursor-interval
秒と呼ばれています。 この機能は0.2秒ごとに呼び出されますので、5回の呼び出しでカーソルをオンにしてから1回だけオフにします.1回の呼び出しで0.5秒間の呼び出しで1秒間のON時間が得られます。 OFF時間の秒。
;; change the interval time to .2
(setq blink-cursor-interval .2)
;; create a variable that counts the timer ticks
(defvar blink-tick-counter 0)
;; this function will be called every .2 seconds
(defun blink-cursor-timer-function()
"Timer function of timer `blink-cursor-timer'."
(if (internal-show-cursor-p)
(progn
(if (> blink-tick-counter 4)
(progn
(internal-show-cursor nil nil)
(setq blink-tick-counter 0))
(setq blink-tick-counter (1+ blink-tick-counter))))
(internal-show-cursor nil t)))
あなたのソリューションは正常に動作しますが、もう一方の答えはよりクリーンに見え、私は1つしか選択できません。とにかく、ありがとうございます – Jesse
これはどのように機能するのでしょうか?私はかなり興味があります。 –
答えをありがとう。 blink-cursor-modeを呼び出しても、期待どおりに機能していれば、ブレークします:) – Jesse
壊れたときを詳しく教えてください。 – Thomas