在编程中,我们有一个在引号之间选择文本的任务。假设,我们有以下PHP代码:
lwt_shared_save_conditions_to_session($conditions, "bundles_listing"■);
光标位置显示为黑色方块。我们想要选择文本“bundles_listing”并将其复制到剪贴板中。我创建了以下函数:
(defun select-quoted-text ()
(interactive)
(search-backward "\"")
(forward-char 1)
(cua-set-mark)
(backward-char 1)
(search-backward "\"")
(kill-ring-save (region-beginning) (region-end))
)
它将选择引号之间的文字。
如何执行以下操作:
1.将此代码转换为1个函数调用:
(forward-char 1)
(cua-set-mark)
(backward-char 1)
'
和双"
引号之间选择文字。答案 0 :(得分:1)
以下是我如何以交互方式进行(而不是为其定义函数):
C-SPC C-M-b M-w
运行以下命令:
set-mark-command
backward-sexp
kill-ring-save
答案 1 :(得分:1)
试试这个:
(defun copy-quoted ()
"Copy current string into kill-ring.
The point can be anywhere in the string."
(interactive)
(let ((beg (or (nth 8 (syntax-ppss))
(and (memq (char-after (point))
'(?\" ?\'))
(point))))
end)
(when beg
(setq end
(save-excursion
(goto-char beg)
(forward-sexp)
(point)))
(kill-ring-save beg end))))