From a9843530932488677bab021444b5ebd5b035e372 Mon Sep 17 00:00:00 2001 From: Daneel Date: Tue, 24 Feb 2026 14:54:12 +0100 Subject: [PATCH] fix(yasnippet): C-d clears field; ensure insert state on expand --- config.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/config.el b/config.el index d31796e..7dd89ca 100644 --- a/config.el +++ b/config.el @@ -1260,6 +1260,21 @@ Otherwise: runs interactive ement-connect, then opens rooms after sync." ;; TAB in Evil insert: with yasnippet-capf first in CAPF list, ;; corfu shows snippets as expandable items — no manual TAB override needed. ;; Standard indent-for-tab-command handles org-cycle / indent fallback. + + ;; Evil + yasnippet: when entering a field, select default text so typing replaces it. + ;; Without this, default text is not visually selected in Evil insert state. + (add-hook 'yas-before-expand-snippet-hook + (lambda () (when (evil-normal-state-p) (evil-insert-state)))) + + ;; Delete field content with a single key: C-d clears current field content + (add-hook 'yas-keymap-disable-hook + (lambda () (not (yas--snippets-at-point)))) + + (define-key yas-keymap (kbd "C-d") + (lambda () + (interactive) + (delete-region (yas-field-start (yas-current-field)) + (yas-field-end (yas-current-field))))) ) ;;; ============================================================