3

我正在寻找一个将 S 表达式放入杀戮环的命令,而不将其删除。

以下场景会做这件事,但是在使用时会删除表达式M-x kill-sexp

(foo (bar bam))
^
point here
4

3 回答 3

4

没有单一的和弦,但你可以做两个:

或者,你可以做

如果您的缓冲区是只读的,第一个命令将失败,但 S 表达式仍将被复制到kill-ring.

于 2016-05-30T14:25:42.397 回答
1

有很多方法可以做到这一点(例如使用内置的thing-at-point,或者只是调用kill-sexpviacall-interactively并在之后恢复原始缓冲区内容)。

不过,它很容易实现为稍作修改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)
于 2016-06-01T03:40:20.527 回答
0

我建议安装smartparens然后简单地使用sp-copy-sexp.

于 2018-01-07T19:30:27.853 回答