Как скопировать строку и вставить подстроку в Emacs? - PullRequest
0 голосов
/ 13 апреля 2020

Нашел это во внутренних сетях:

(defun clipboard/set (astring)
  "Copy a string to clipboard"
   (with-temp-buffer
    (insert astring)
    (clipboard-kill-region (point-min) (point-max))))

Я хочу сделать это интерактивным, пропустить строку через подстроку, а затем скопировать ее в буфер обмена

(defun clipboard/set (astring)
  "Copy a string to clipboard"
(interactive)
(let (bstring (substring astring -11)))   
(with-temp-buffer
    (insert bstring)
    (clipboard-kill-region (point-min) (point-max))))

Как бы сделать это?

1 Ответ

0 голосов
/ 13 апреля 2020

Вы должны указать 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)))))

и закройте его в самом конце.

...