2026新春快乐

又是新的一年,又来开个帖子,祝各位坛友2026年马到成功,马上有钱!AI时代玩Emacs玩出新高度!

19 个赞

祝各位emacser和各位大佬马年大发,万事顺遂!!!

2 个赞

心想事成,万事如愿。

2 个赞

吾闻良骥老始成,此马数年人更惊。 新的一年新的一岁,祝大家马到成功事业有成。

3 个赞

祝 Emacs 和 Emacs 大佬们在新的一年里更加闪耀!

2 个赞

新春快乐,码上有喜事!!!

2 个赞

人在亲戚家
根本摸不到PC
手机玩Emacs

7 个赞

新年快乐!

2 个赞

新年快乐

2 个赞

新春快乐!马上有Emacs!

2 个赞

新春快乐呀!

2 个赞

新年快乐!

2 个赞

新年快乐!

代码
(defface chunlian-face '((t :background "red" :foreground "yellow" :weight bold :height 2.0)) "春联样式。")
(defvar chunlian-right "组合键里乾坤大")
(defvar chunlian-left "缓冲区中日月长")
(defvar chunlian-top "皆可定制")
(defvar-local chunlian--overlays nil)
(defun chunlian--setup-display ()
  "设置春联的显示。"
  (setq header-line-format
        (list (propertize " " 'display `(space :align-to (- center ,(string-width chunlian-top))))
              (propertize chunlian-top 'face 'chunlian-face)))
  (set-window-margins (selected-window) 4 4)
  (save-excursion
    (goto-char (point-min))
    (let ((len (min (length chunlian-left) (length chunlian-right))))
      (dotimes (i len)
        (let* ((start (line-beginning-position))
               (end (line-end-position))
               (ov-l (make-overlay start start))
               (ov-r (make-overlay start start))
               (char-l (substring chunlian-left i (1+ i)))
               (char-r (substring chunlian-right i (1+ i))))
          (overlay-put ov-l 'before-string
                       (propertize " " 'display
                                   `((margin left-margin)
                                     ,(propertize char-l 'face 'chunlian-face))))
          (overlay-put ov-r 'after-string
                       (propertize " " 'display
                                   `((margin right-margin)
                                     ,(propertize char-r 'face 'chunlian-face))))
          (push ov-l chunlian--overlays)
          (push ov-r chunlian--overlays)

          ;; 移动到下一行,如果行数不足则插入新行
          (if (< (line-number-at-pos) len)
              (if (zerop (forward-line 1))
                  nil
                (insert "\n"))))))))

(defun chunlian--clear-display ()
  "清除春联显示。"
  (setq header-line-format nil)
  (set-window-margins (selected-window) 0 0)
  (mapc #'delete-overlay chunlian--overlays)
  (setq chunlian--overlays nil))

;;;###autoload
(define-minor-mode chunlian-mode
  "一个简单的 Minor Mode,用于在 buffer 两侧显示春联。"
  :lighter " 🧧"
  (if chunlian-mode
      (chunlian--setup-display)
    (chunlian--clear-display)))

(provide 'chunlian-mode)

本来还有个手写的版本的,不过过年回来远程没配置好,索性直接用 AI 糊了一个。

明年说不定能用 Canvas API 在 Emacs 里放烟花(

17 个赞

新年快乐~

1 个赞

新年快乐,祝Emacs越来越好!

1 个赞