Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在缓冲区中生成自定义emacs键绑定打印文本?_Emacs - Fatal编程技术网

如何在缓冲区中生成自定义emacs键绑定打印文本?

如何在缓冲区中生成自定义emacs键绑定打印文本?,emacs,Emacs,我想要键绑定C-打印console.log()然后返回两个字符,以便将光标放在圆括号的中间。这就是我的代码: (global-set-key (kbd "C-;") 'print-command) (defun print-command () (interactive) "console.log();" (backward-char) (backward-char) ) 执行时,光标确实返回两个字符,但是console.log()未打印。如何修复此问题?您可以使用ins

我想要键绑定
C-
打印
console.log()然后返回两个字符,以便将光标放在圆括号的中间。这就是我的代码:

(global-set-key (kbd "C-;") 'print-command)

(defun print-command ()
  (interactive)
  "console.log();"
  (backward-char)
  (backward-char)
  )

执行时,光标确实返回两个字符,但是
console.log()未打印。如何修复此问题?

您可以使用
insert
将文本插入缓冲区

(defun insert-console-log ()
  (interactive)
  (insert "console.log();")
  (backward-char 2))

另一个选项是录制宏,保存并使用它

M-x kmacro-start-macro
键入console.log();记住记录你的两个背字符

M-x kmacro-end-macro
M-x name-last-kbd-macro  insert-console-log
M-x insert-kbd-macro insert-console-log
然后,可以将输出粘贴到初始化文件中(使用快捷方式定义):

这有一个明显的缺点,那就是编辑“函数”变得更加棘手

(global-set-key (kbd "C-;") 'print-command)
(fset 'print-command
   [?c ?o ?n ?s ?o ?l ?e ?. ?l ?o ?g ?\( ?\) ?\; left left])