我使用 EmacsM-xterm
作为终端。由于我的典型工作流程如下:
- 编辑一些代码
- C-x o到终端缓冲区(或者C-x b
term[Enter]
其他东西) - 按下Up键使用上一个命令
- 按下Enter运行
- C-x o回去
我想将所有这些(除了第一步......也许)绑定到一个命令,我相信 Emacs 足够棒可以做到这一点 :-)
因此,命令必须:
- 使用终端进入缓冲区(也许它根本不应该改变任何窗口,也许它应该垂直分割窗口(如果它还没有分割)并使用正确的 sid)
- 运行最后一条命令,那里已经运行了
- 返回到最后一个缓冲区/屏幕的一部分
谢谢!我不太习惯 Emacs 脚本系统,我希望有人能帮助我,其他人也能利用这个答案来改善他的工作流程,因为我相信这是一个相当常见的问题
命令示例:
python manage.py test
python manage.py test stats
python solve.py # for project-euler puzzles :-)
第一和第二次有时通过 ssh 运行(在终端中)(我喜欢用 进行开发vagrant
)
我知道绑定第一个和第三个很容易,但第二个变化太频繁了——我只想“运行最后一个命令”
答案1
答案2
不允许M-x compile
做类似的事情?它允许您键入自定义命令并运行它,然后下次重复此操作...
嗯,交互式命令可能会有问题(这就是你想使用术语的原因),也许持久可重复使用的 ssh 连接也会有问题(但 TRAMP 可以在这里提供帮助:cd REMOTELOCATION; your_cmd
可以工作)。
因此,至少,您可以查看compile
的源代码来了解在这种情况下如何管理缓冲区以及如何执行命令。