emacs - emacs 的行重复代码

标签 emacs elisp

我正在尝试编写行复制函数。我必须保持光标位置。这是 .emacs 文件中的代码:

(defun line-duplicate
  "line duplication."
  (setq position (point))       ;Store the original position of cursor               
  (global-set-key "\C-d" "\C-a\C-k\C-k\C-y\C-y")
  (goto-char position)            ;move the cursor to original position
)

(line-duplicate)

但是,出现了一些错误。有什么错误吗?

编辑

刚刚发现命令执行函数:

(defun line-duplicate ()
  (interactive)
  (setq position (point))
  (command-execute (kbd "C-a C-k C-k C-y C-y"))
  (goto-char position)
)

(global-set-key (kbd "C-d") 'line-duplicate)

这成功了。

最佳答案

global-set-key 采用两个参数:KEYCOMMANDCOMMAND 不是一个按键序列,它是一个函数(通常它是一个命名可交互调用函数的符号,文档说)。您可能不想在调用函数时更改 C-d 的行为,而是希望将函数绑定(bind)到键。

关于emacs - emacs 的行重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644717/

相关文章:

Emacs,如何为 LaTeX 文件自动打开 flyspell

emacs - 如何在 Emacs Org-babel 中启用自动完成?

python - 在 emacs python 模式中不正确地退出缩进

version-control - Emacs VCS 界面只提交一个文件

emacs - 我的 emacs/slime 设置有什么问题(编译和加载/评估不工作)?

Emacs 启动时不加载包

shell - Emacs 和长 Shell 命令

lisp - bool 值 : t vs. nil vs 1 vs -1

Emacs24 不会下载 marmalade-repo.org 文件

lisp - (1- 3) Elisp 中的符号