Emacs

2012-11-29 19 views
5

में कर्सर ब्लिंक को दिल की धड़कन बनाने के लिए एक रास्ता तलाश रहे हैं I Emacs में कर्सर को दिल की धड़कन की तरह कैसे बना सकता है। कंप्यूटर निलंबित होने पर लैपटॉप के फ्रंट पैनल पर एलईडी की तरह।Emacs

परिवर्तनीय blink-cursor-alist है जो कर्सर के झपकी को नियंत्रित करता है, लेकिन मुझे नहीं पता कि मेरी आवश्यकता को पूरा करने के लिए इसका उपयोग कैसे किया जाए।

क्या यह संभव है?

उत्तर

3

आपको लगता है कि विकल्प "ब्लिंक" शब्द के साथ कुछ करने के लिए है। तो आप सी-एच ए (एप्रोपोस के लिए) दबाएं और "ब्लिंक" टाइप करें। मेरे emacs पर, मुझे दो विकल्प मिलते हैं: blink-cursor-mode और blink-matching-open। पहला व्यक्ति सही दिखता है। विवरण कहता है: "ब्लिंकिंग कर्सर मोड टॉगल करें"।

मेरे emacs पर शॉर्टकट कहता है: <menu-bar> <options> <blink-cursor-mode>। तो मुझे लगता है कि विकल्प मेनू में कहीं भी है, शायद "विकल्प" के तहत। मैं विकल्प मेनू खोलता हूं, और वहां यह है: एक टिक बॉक्स के साथ "ब्लिंकिंग कर्सर"।

यह एक विकल्प की तरह लगता है जिसे अनुकूलित किया जा सकता है। तो मैं M-x customize-option टाइप करता हूं और फिर blink-cursor-mode टाइप करता हूं। यह मुझे मूल्य टॉगल करने और भविष्य के सत्रों के लिए इसे सहेजने की अनुमति देता है।

संपादित करें: कर्सर के लिए चालू और बंद के बीच अंतराल सेट करने के लिए, blink-cursor-interval नामक एक चर है। अंतराल सेट करने के लिए आप M-x customize-variable और फिर blink-cursor-interval का उपयोग कर सकते हैं। परिवर्तनीय blink-cursor-alist ऑन ऑफ़ स्टेट कर्सर प्रकार को ऑन स्टेट कर्सर प्रकार से मेल खाता है, और ब्लिंकिंग की गति से संबंधित नहीं है।

EDIT2: जहाँ तक मुझे पता के रूप में वहाँ कर्सर धीरे-धीरे बंद और चालू है, क्योंकि पर राज्य के लिए कर्सर के आकार बंद राज्य में आकार के लिए अलग अलग हो सकता है बनाने के लिए कोई रास्ता नहीं है (ताकि एक है आकार में क्रमिक परिवर्तन की आवश्यकता होगी)।

+1

हाँ, मुझे पता है कि कर्सर झपकी सकता है, लेकिन क्या यह धीमी गति से झपकी सकता है? ऑफ पर, बंद पर बस इतना आसान नहीं है। कंप्यूटर को निलंबित होने पर लैपटॉप के फ्रंट पैनल पर एलईडी की तरह '। – louxiu

+0

धन्यवाद :-) आशा है कि Emacs भविष्य में यह सुविधा हो सकती है। – louxiu

+1

@louxiu भविष्य आ गया है। :) एक साधारण दिल की धड़कन-शैली चमकते कर्सर के लिए मेरा जवाब देखें। – user4815162342

7

यह सरल मामूली मोड दिल की धड़कन-शैली चमकते कर्सर को लागू करता है। अलग-अलग रंग या भिन्नता प्राप्त करने के लिए आप heartbeat-cursor-colors को ट्वीक कर सकते हैं।

कोड इमाक्स 24.2.1 में परीक्षण किया गया है, लेकिन पुराने Emacsen को पोर्ट करना आसान होगा।

(require 'cl) 
(require 'color) 

(defvar heartbeat-fps 16) 
(defvar heartbeat-period 5) 

(defun heartbeat-range (from to cnt) 
    (let ((step (/ (- to from) (float cnt)))) 
    (loop for i below cnt collect (+ from (* step i))))) 

(defun heartbeat-cursor-colors() 
    (let ((cnt (* heartbeat-period heartbeat-fps))) 
    (mapcar (lambda (r) 
       (color-rgb-to-hex r 0 0)) 
      (nconc (heartbeat-range .2 1 (/ cnt 2)) 
        (heartbeat-range 1 .2 (/ cnt 2)))))) 

(defvar heartbeat-cursor-timer nil) 
(defvar heartbeat-cursor-old-color) 

(define-minor-mode heartbeat-cursor-mode 
    "Change cursor color with the heartbeat effect." 
    nil "" nil 
    :global t 
    (when heartbeat-cursor-timer 
    (cancel-timer heartbeat-cursor-timer) 
    (setq heartbeat-cursor-timer nil) 
    (set-face-background 'cursor heartbeat-cursor-old-color)) 
    (when heartbeat-cursor-mode 
    (setq heartbeat-cursor-old-color (face-background 'cursor) 
      heartbeat-cursor-timer 
      (run-with-timer 
      0 (/ 1 (float heartbeat-fps)) 
      (lexical-let ((colors (heartbeat-cursor-colors)) tail) 
      (lambda() 
       (setq tail (or (cdr tail) colors)) 
       (set-face-background 'cursor (car tail)))))))) 
+0

यह शानदार है! मैं कार्यरत हूं! – louxiu

+0

अविश्वसनीय - आप दोनों और emacs के लिए kudos। अब देखते हैं कि आप ग्रहण में ऐसा कर रहे हैं ;-) –

+0

अद्भुत! इसे emacs के साथ चलाने के लिए 24.3.1 मुझे 'nil'' दिल की धड़कन-कर्सर-टाइमर 'पर सेट करना पड़ा - (डिफवर दिल की धड़कन-कर्सर-टाइमर शून्य) – nic