使用 emacs 控制命令行进程

使用 emacs 控制命令行进程

我在日常开发中使用了大量的命令行实用程序(例如 Maven、ant、Grizzly、mplayer、CASE 工具等)。我使用 Windows。每次我想启动一个新进程时,我最终都必须创建一个新的 cmd.exe 进程并输入我想要运行的内容。有时,我会同时打开五个 cmd.exe!!管理起来越来越困难。

有没有办法直接在 emacs 中执行此操作?以下是我想要的:

  • 将几个 cmd.exe 的输出存储在 emacs 中(每个可能都有一个新的缓冲区)
  • 能够向进程发送 stdin 和 ctrl-c
  • 无需重新输入整个命令即可重新启动命令的简单方法(如按 cmd.exe 中的向上箭头)
  • 能够将某些参数粘贴到要运行的命令中(例如 -file=C:\my\directory\my.file)
  • 能够将输出复制到剪贴板。理想情况下,不会像 cmd.exe 那样在 40 列左右处中断。

这听起来像是 emacs 中可行的任务,但我不太清楚如何执行。我希望能够使用 ssh 并在远程 Linux 机器上执行类似操作。

也许还有其他比 emacs 更明显的解决方案。如果有,请告诉我。

编辑:我注意到 emacs 有一个 eshell 命令。我认为如果我能让它同时在多个缓冲区上运行,我的需求就会得到满足。

答案1

我是一个偏爱 linux/emacs 的人,所以我会尝试以下方法:

  • 安装赛格威及其版本的 emacs
  • 在 emacs 中运行多个 shell。M-x shell在 emacs 中启动一个 shell。如果您给出前缀参数 ( C-u M-x shell),emacs 将提示您输入要提供给 shell 缓冲区的名称。这样您就可以拥有多个 shell 缓冲区。
  • 为要运行的各种任务创建 bash 别名,例如为“ ”之类的任务创建一个名为“mp”的mplayer -option1 -option2 23别名

许多不喜欢 Linux/Cygwin 的人喜欢电源外壳。这也提供了别名。有些人写过关于在 emacs 中运行 powershell

相关内容