gpt4 book ai didi

emacs - 使用 Ace-Jump 在 emacs 中复制一行

转载 作者:行者123 更新时间:2023-12-05 00:26:36 24 4
gpt4 key购买 nike

我对 elisp 还很陌生,但我真正想弄清楚的一件事是如何在执行指令之前等待 ace-jump 结束,或者如何从 ace-jump 获取位置而不是移动我的光标。我的目标是能够使用 ace-jump 选择一行,复制它,然后将其粘贴到我当前行的正上方。我首先尝试使用 ace-jump 转到一行,然后将其复制到位,但这没有用。这是我所拥有的:

(defun ace-jump-yank-line-above ()
(interactive)
(ace-jump-line-mode)
(kill-ring-save (line-beginning-position) (line-beginning-position 2) )
(yank)
)

但这给了我奇怪的行为

最佳答案

你可以看看我的项目源码lispy.el .
它有几个使用 ace-jump-mode 的函数然后做点什么。
例如 lispy-ace-symbol将王牌跳到符号并标记它。
这是实现细节 - 关键是设置 ace-jump-mode-hook :

(defun lispy--ace-do (x bnd &optional filter func no-narrow)
"Use `ace-jump-do' to X within BND when FILTER return t.
When FUNC is not nil, call it after a successful move.
When NO-NARROW is not nil, don't narrow to BND."
(require 'ace-jump-mode)
(lispy--recenter-bounds bnd)
(unless no-narrow
(narrow-to-region (car bnd) (cdr bnd)))
(when func
(setq ace-jump-mode-end-hook
(list `(lambda()
(setq ace-jump-mode-end-hook)
(,func)))))
(let ((ace-jump-mode-scope 'window)
(ace-jump-search-filter filter))
(ace-jump-do x))
(widen))

关于emacs - 使用 Ace-Jump 在 emacs 中复制一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com