This is another Emacs package I developed recently to make my life better.
Intercept the input in comint-mode. This can be used to run eshell command, or run some command in a terminal buffer from the command line in shell buffer. That is, this is to combine the best part of shell, eshell and term mode. For example, you can run eshell `grep’ in the shell buffer, or when you run `top’ in the shell buffer, a terminal buffer is poped to run it. SSH is supported to run command remotely.
The preferred install method is through package manager: package.el. comint-intercept is available in MELPA package repository.
Or you can download the comint-intercept.el, add its path into Emacs load path, and load the file. For example, add
(add-to-list 'load-path "<directory of comint-intercept.el>") (require 'comint-intercept)
in your Emacs init file.
A minor mode named
comint-intercept-mode is defined. To toggle it in a shell buffer or some other comint mode buffer, you can run command
comint-intercept-mode. Or you can enable
comint-intercept-mode automatically when you create a new shell mode buffer via,
(add-hook 'shell-mode-hook 'comint-intercept-mode)
Then you can run eshell command via
$ e <eshell command>
Or run some eshell command directly via customizing
To run command in term mode, you can use
$ t <command> <args>...
Or run commands in term mode directly via customizing
If you want something more general, you can customize
comint-intercept-pattern-actions, which is an alist maps input pattern (regexp) to action to take (function). The input string will be fed to the action function. Then you can process the input string via
comint-intercept-term-command provided by the package.