若要從使用2秒空閒計時器(自定義函數梳理整個緩衝區)設置的自定義函數的運行時間中減去約.3
秒,我使用(font-lock-mode -1)
禁用字體鎖定模式。副作用是我的flyspell-incorrect
和flyspell-duplicate
被刪除。將這些fly字體再次放回(flyspell-region (window-start) (window-end))
費用比.3
秒多了很多。所以,我想通過移除除了flyspell-incorrect
和flyspell-duplicate
之外的所有字體鎖字體來中途停留。有沒有一種方法可以將條件添加到font-core
以下的代碼片段中,該代碼片段可以保留flyspell字體,但可以刪除其他所有內容?刪除所有字體鎖定面(除flyspell-flyspell-duplicate外)
;; Turn off Font Lock mode.
(unless mode
;; Remove `font-lock-face' as an alias for the `face' property.
(set (make-local-variable 'char-property-alias-alist)
(copy-tree char-property-alias-alist))
(let ((elt (assq 'face char-property-alias-alist)))
(when elt
(setcdr elt (remq 'font-lock-face (cdr elt)))
(when (null (cdr elt))
(setq char-property-alias-alist
(delq elt char-property-alias-alist))))))
我有一個垂直線高亮顯示器的工作草案,它在'visual-line-mode'中跟蹤我的光標位置。它經過'window-start'和'window-end'之間的緩衝區兩(2)次。第一遍是「重新搜索後退」\ n「。 。 。第二遍是'垂直運動-1'。第一遍在所有行結尾處放置覆蓋(例如,硬回車),並且在每個*第一行*(直到窗口結束)。第二遍按照「可視線模式」佈局在字符包裹區域放置覆蓋圖。在tex-mode緩衝區中,運行時間是字體鎖定模式的兩倍。 – lawlist
通過在每次「重新搜索後退」和每個「垂直運動-1」開始時執行一次計算,我已經對運行時間進行了重大改進。今天早上,我用改進後的代碼進行了一次新的測試,並驗證了運行時仍然是*雙*,並啓用了'font-lock-mode'。但是,無可否認,運行時現在遠低於'.3' - 我用'(font-lock-mode-1)'將其降低到大約'.08'到'.12'。使用'(font-lock-mode 1)',運行時間是* double * - 即'.16'到'.24'。我*不*使用'AUCTeX'。我用一些添加了關鍵字的'tex-mode.el'。 – lawlist
你如何添加視覺效果?如果通過修改緩衝區(例如put-text-property)來實現,那麼除非使用'with-silent-modifications',否則字體鎖實際上會減慢它的速度。 – Stefan