Вы должны указать interactive
, как заполнять аргументы:
(interactive "sAstring: ")
Кроме того, синтаксис let
отличается, он начинается со списка списков переменных и значений, то есть
(let ((bstring (substring astring -11)))
; ^^
т.е.
(defun clipboard/set (astring)
"Copy a string to clipboard"
(interactive "sAstring: ")
(let ((bstring (substring astring -11)))
(with-temp-buffer
(insert bstring)
(clipboard-kill-region (point-min) (point-max)))))
и закройте его в самом конце.