Emacs宏以Shell模式启动并运行命令

mac*_*ost 2 emacs macros

我有一个坦白:我不知道Lisp.尽管如此,在一些同事的帮助下,我设法写了一个emacs宏/脚本:

  1. 切换到shell模式(即Mx shell模式)
  2. 禁用截断线(即Mx切换截断线)
  3. 启动了一个数据库控制台(即"mysql")

然后我可以使用--script选项启动带有该宏的emacs,然后突然我有一种方法可以在一个更友好的环境中用一个命令启动mysql :-)

但问题出在这里:我改变了工作并将这个脚本抛在身后.现在我非常想在我的新工作中重新创建该脚本,但我不再有任何emacs专家来帮助我像在旧工作中那样编写它.

现在,我真的讨厌SO帖子,有人基本上说"请为我写代码",所以我不想这样做.但是,如果任何emacs宏专家至少可以给我一些指针(比如"这里是你如何在宏中调用Mx命令"),或者指向一个emacs-macro-writing指南,或者"教我钓鱼"在这个问题上,我将不胜感激.

...如果有人恰好有一个类似的脚本已经躺在他们想要发布,我当然不会抱怨;-)

Tyl*_*ler 5

大多数emacs命令(即M-x toggle-truncate-lines)可以通过将它们包装在括号中直接转换为elisp:

(toggle-truncate-lines)
Run Code Online (Sandbox Code Playgroud)

谣言是真实的,在口齿不清中,你只是将括号分散开来并且制造魔法.

现在在这种情况下,你可以做得更好.切换对于交互式功能是有意义的,但是在程序中,您实际上并不想切换截断线,而是想要打开截断线.如果截断行开始时关闭它也是一样的,但是你不知道下一次运行程序的时间.无论如何,在Emacs中,功能通常由变量控制.在这种情况下,变量是truncate-lines,并且要打开该功能,您将变量设置为t(这意味着为true).

为此,请使用:

(setq truncate-lines t)
Run Code Online (Sandbox Code Playgroud)

我们使用setq而不是=分配,因为他们之前=发明了lisp .

对于真正的独家新闻,您应该看看Robert Chassel的优秀"Emacs Lisp编程入门".它内置了你的emacs,你可以使用它C-h i m Emacs Lisp Intro.