我正在寻找一个命令来把一个S表达式放到杀死环上,而不是删除它。
使用M-x kill-sexp时,以下场景将执行此操作,但表达式将被删除
(foo (bar bam))
^
point here发布于 2016-06-01 11:40:21
有很多方法可以做到这一点(例如,使用内置的thing-at-point,或者只是通过call-interactively调用kill-sexp,然后恢复原始的缓冲区内容)。
不过,将其实现为稍微修改过的kill-sexp相当简单。这是我使用的:
(defun copy-sexp-as-kill (&optional arg)
"Save the sexp following point to the kill ring.
ARG has the same meaning as for `kill-sexp'."
(interactive "p")
(save-excursion
(let ((orig-point (point)))
(forward-sexp (or arg 1))
(kill-ring-save orig-point (point)))))
(global-set-key (kbd "M-K") #'copy-sexp-as-kill)发布于 2018-01-08 03:30:28
我建议先安装smartparens,再简单地使用sp-copy-sexp。
https://stackoverflow.com/questions/37526838
复制相似问题