c - 在 Emacs 中单步运行和执行 C 程序

标签 c emacs zsh

我是 Emacs 的新手,我想使用 eshell 在单独的窗口中执行 C 程序(顶部的窗口带有 C 文件,底部的窗口带有 eshell;来回切换用 C-x o)。不幸的是,我必须在 eshell 中编写 gcc program.c -o program 然后 ./program

在我的 .zshrc 中我有一个别名

c () {
  gcc $1 && ./a.out
}

这意味着我可以在普通终端中运行 c program.c,将两步合二为一。但当然,eshell 不会读取 .zshrc。那么我该如何编写一个 elisp 文件来完成同样的事情呢?

最佳答案

这是我多年来一直在做的事情。添加一个 Emacs 标题行,如下例所示:

/* -*- mode: C++; compile-command: "gcc -s -O3 termcolor.c -o termcolor; ./termcolor" -*- */

#include <stdio.h>

int main (void) {
  printf("[0;34;41mHello world![m\n");
  printf("[5;34;41mHello world![m\n");
  printf("[1;5;34;41mHello world![m\n");

  return 0;
}     

我将 C-x c 设置为调用 M-x compile 的别名(至少在 C++ 模式下,我也在这里设置了它,尽管它在技术上是一个 C 文件),所以它调用此处指定的 compile-command ...其中包括执行。

很快我就明白了

-*- mode: compilation; default-directory: "/tmp/" -*-
Compilation started at Sat Dec 24 13:22:23

gcc -s -O3 termcolor.c -o termcolor; ./termcolor
[0;34;41mHello world![m
[5;34;41mHello world![m
[1;5;34;41mHello world![m

Compilation finished at Sat Dec 24 13:22:24

编译 缓冲区中。对我来说效果很好。

关于c - 在 Emacs 中单步运行和执行 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315982/

相关文章:

vim - 如何在 Emacs 或 Vim 中分发字符串

python - 尝试在 emacs 中开发 python

emacs - 如何从 Emacs 中的选定区域中删除所有换行符?

osx-lion - oh-my-zsh 主题显示不正确(背景保持白色)

ruby - zsh:不再找到 Heroku 工具带

command-line - zsh 别名使用 localhost 端口打开 chrome

C、结构体指针的赋值改变了赋值右边的内容

c - 如何在 x86 Windows 中刷新 CPU 缓存?

c - 在 makefile 中使用 'all'

c - C语言中的上溢和下溢