我在日常开发中使用了大量的命令行实用程序(例如 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。