This is needed for delete-selection-mode to work properly:
> Commands which will delete the selection need a 'delete-selection
> property on their symbols; commands which insert text but don't have
> this property won't delete the selection.
(or (nameless-insert-name 'noerror)
(call-interactively #'self-insert-command))))
+(put 'nameless-insert-name-or-self-insert 'delete-selection t)
+
(defun nameless--name-regexp (name)
"Return a regexp of the current name."
(concat "\\_<@?\\(" (regexp-quote name) "-\\)\\(\\s_\\|\\sw\\)"))