ata*_*lor 17
您可以使用键盘将击键翻译为elisp .C-h k key
您会注意到用于设置标记的elisp函数set-mark-command,接受一个非可选参数.Emacs使用特殊interactive函数允许elisp函数自然地用参数写入.这允许它们是通用的并且易于在其他elisp程序中重用,同时仍然可以直接从击键调用.它还C-u内置了一些前缀逻辑.
在set-mark-command第一个函数的情况下(interactive "P"),这意味着当从键盘调用时,前缀作为参数传入.你可以直接用elisp模拟这个:
(set-mark-command nil)
Run Code Online (Sandbox Code Playgroud)
例如,要选择elisp中的当前行:
(defun my-select-current-line ()
(interactive)
(move-beginning-of-line nil)
(set-mark-command nil)
(move-end-of-line nil)
(setq deactivate-mark nil))
Run Code Online (Sandbox Code Playgroud)
请注意,您必须告诉emacs在最后使标记保持活动状态,否则该区域将不会保持突出显示(尽管点和标记将位于您离开它们的位置).