emacs - 在 Emacs 中重复输入变量名的快速方法?

标签 emacs elisp

我只是第 N 次输入这种代码:

menu.add_item(spamspamspam, "spamspamspam");

我想知道是否有更快的方法。

我想要类似于 yasnippet 的镜像的行为,除了 我不想创建一个片段:参数顺序从 从项目到项目,从语言到语言。

唯一不变的是变量名 在同一行上重复多次。

我想输入

menu.add_item($,"")

并使用引号之间的点,调用快捷方式并开始输入, 最后用 C-e 退出。

这对我来说似乎是有利的,因为额外的光标移动为零。 我知道如何做到这一点,但我想知道它是否已经完成, 或者是否可以做得更好/更快。

UPD 毕竟是 yasnippet 方式。

感谢他们的回答。这确实是我最初想到的 yasnippet 代码:

(defun yas-one-line ()
  (interactive)
  (insert "$")
  (let ((snippet 
         (replace-regexp-in-string 
          "\\$" "$1"
          (substring-no-properties
           (delete-and-extract-region
            (line-beginning-position)
            (line-end-position))))))
    (yas/expand-snippet snippet)))

但我仍然希望看到更好/更快的东西。

最佳答案

yasnippet 实际上可以用来即时创建片段:

(defun yas-one-line ()
  (interactive)
  (let ((snippet (delete-and-extract-region
                  (line-beginning-position)
                  (line-end-position))))
    (yas-expand-snippet snippet)))

现在只需输入:

menu.add_item($1,"$1")

并调用yas-one-line。上面的代码片段由 yasnippet 扩展!

关于emacs - 在 Emacs 中重复输入变量名的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978029/

相关文章:

emacs - 定义 Emacs 宏计数器的步长

emacs - 如何在 Emacs 中隐藏额外信息

macos - 在 Mac OS X 上使用 Emacs 时处理德语键盘的好方法是什么?

emacs - 评估 dir locals 中的值

emacs - 我是否需要了解Emacs Lisp才能使用GNU/Emacs

linux - 如何检查 Xorg 是否在 emacs lisp 中运行?

emacs - 如何在 emacs 启动时终止 *GNU Emacs* 缓冲区?

埃马克斯。在同一台机器上读取和写入另一个用户帐户的文件

emacs - 如何让 C-x C-e 只显示十进制和十六进制?

emacs - 使 emacs 下一个缓冲区跳过 *Messages* 缓冲区